해킹책 보면 분산공격인가? Dos가 있는데요

park712의 이미지

책 보니 분산공격인가 그런게 있더군요

M(master) --- B (agent) -- Target system
--- C (agent) -- Target system
--- D (agent) -- Target system
--- E (agent) -- Target system

그림이 조금 틀린데 마스터에서 B C D E 시스템에 agent를 심어놓고 master에서 공격 명령 내리면 여러곳의 agent에서 동시에 하나의 Target system 으로 공격한다는 게 있더군요
그런데 책에는 어떻게 마스터에서 agent로 공격명령을 내리는지가 없습니다.
사실 경유시스템(B C D E)에 agent를 심는것은 스파이 프로그램과 흡사하게 하여 심을 수 있지만 심어진 agent를 어떻게 마스터에서 깨우는지요? 즉, agent가 설치된 PC의 ip라도 알아야 하는데
설령 ip를 안다고 해도 어떻게 리모트 PC의 agent에 명령을 내리죠?
게시판에 제목을 그럴듯 하게 해서 불특정 다수에게 Targetsystem 공격용 agent를 심는거 까지는 큰문제가 없을 듯 한데 막상 불특정시스템의 agent를 어떻게 동시에 실행시키는 지요?
책에 보면 설명만 장황하고 실제 프로그램 설명은 전혀 없더군요
하여간 조금이라도 아시는분 댓글 부탁합니다.

익명 사용자의 이미지

agent(좀비 시스템이라고 보통 칭하지요)의 제어권을 가지고 있다면 얼마던지 가능하겠습니다.

단순히, 에이전트들에게 D-Day H-hour를 지령으로 남기고, agent들의 시간을 동기화시켜주면(또는 에이전트가 특정 시스템에게서 시간을 받도록하거나), 에이전트는 그 시간에 특정 행위를 하겠지요.

ssehoony의 이미지

master <-> agent <-> target 는 말씀 하신 것 처럼 agent 에 특정 프로그램을 설치해야만 하는 경우도 있겠지만, 꼭 그렇게 한정 지을 필요 없죠.
agent 에 이미 설치된 프로그램의 취약점을 파고 들 수도 있습니다.

미처 생각하지 못한 취약점을 파고 들는 DoS 공격의 대표적인 예는 ping flood 이지요.
ping 을 특정 host 에 쏘면, ping 을 받은 host는 나에게 응답해 주는데
만약, ping 을 xxx.xxx.xxx.255 같은 broadcast 주소로 쐈다고 가정해 보세요.
그리고 그 xxx.xxx.xxx 에는 현재 100 대의 컴터가 작동되고 있고, broadcast 가 막혀 있지 않다면, 나에게 100 대의 컴터가 응답해 주겠지요?
그럼 이제, ping 의 패킷 내용을 살짝 바꿔서 응답해줄 컴터는 내가 아닌 target 로 설정해 주면, 핑하나 날리면 target 컴터로 100개의 응답이 가겠네요.
그럼 핑 100개 날리면 target 로 10000개가 가겠지요.

Mins의 이미지

어떠한 방법으로 agent 들에게 명령을 내릴수 있느냐가 질문인가요..

많이 문제시 되는 botnet 과 같이 irc 의 특정 채널에서 대기를하며 명령을 기다리곤 합니다..

이것이 많이 문제가 되다 보니, 특정 웹페이지를 통해 좀비들을 제어 하는 경우도 있더군요...

jjaiwook79의 이미지

대부분의 코드(여기서는 agent)에는 netcat 등을 이용한 reverse telnet 기능 또는 적어도 victim 시스템의 ip를 master에 알려주는 기능이 들어있을 겁니다. 그걸 통해서 명령을 내리겠죠.

일단 공격자가 서버내 쉘을 확보할 수 있다면 그 이후 공격은 문제가 없을 것 같습니다.

hyperhidrosis의 이미지

agent 가 master 의 명령을 기다리기 위해서 포트를 열어놓고 listen 하는 방법도 있고,

agent 가 폴링하면서 master 에게 언제 공격할까요? 라고 물어볼수도 있겠죠.

쌀밥의 이미지

분산 서비스 방해 공격
Dos가 아니라 DDOS....입니다.;

일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.

Stand Alone Complex의 이미지

DoS는 서비스 거부 공격입니다.

DDoS는 분산 서비스 거부 공격이고요. (적어도 제 기억은 그렇게 말해주는군요.)

DoS에 agent가 가미되면 DDoS가 되는것으로 알고 있습니다.

덧: agent가 아니더라도 DDoS가 가능하지만 요즘 이슈화 되는것은 botnet agent이니 그렇게 말할 수 있겠죠.

RET ;My life :P

opiokane의 이미지

DoS=Denial of Service
DDoS= Distributed Denial of Service

여담으로---고의적인 공격이 아닌 경우에 Denial of Service가
발생하기도 합니다. 웹의 초기 시절에 미국의 빅토리아 시크릿이란
여자 속옷 회사에서 세계에서 제일 잘 팔리는 모델들로 속옷
패션쇼를 웹을 통해서 했었습니다.
전세계의 수컷들이 이 중계를 보겠다고 온통 몰려들어
한 반나절 동안 빅토리아 시크릿의 서버는 물론이고
인터넷 자체가 거의 마비 증상을 보이기도 했습니다.
속옷회사의 인터넷에 대한 절묘한 DDoS 공격이었다고
말할 수 있겠네요...ㅋㅋ.
올 12월 6일에도 했는데, 다행히 그냥 TV를 통해서만 해서
올해에는 트래픽은 없었습니다.

George double you Bush has two brains, the left and the right, like normal people. But the problem is that there is nothing right in his left brain and there is nothing left in his right brain"

Stand Alone Complex의 이미지

이번 원서 접수 사태도 고의적이지 않은 (일부러 서버 다운을 시키려한것이 아닌) DDoS로 다운된거죠...

뭐 공격했다는 루머도 있지만 글쎄요... 전 잘모르겠습니다.

RET ;My life :P

park712의 이미지

글쓴이인데요 댓글 해 주신분들 답변 고맙습니다.
요즘 보안 해킹 공부하는데 역시 어렵네요.
해킹이야 말로 전산의 모든 것 그 이상이라 생각이 드네요
agent를 일반 PC 500만대에 심는 project를 추진한다고 가정하면
agent에서 listen을 하든 뭘하던 메모리에 올리고,
이후 특정포트를 항상 열고 HTTPD TELNETD와 같이 데몬 프로그램 처럼
레지스트리에 등록한후 기다려야 하는데 500만대의 pc ip를 모른다.
그렇다면 500만대의 pc에 있는 agent가 메모리에 로드 하는 순간 master의 ip주소를 확인하여 master가 살아 있고 특정 데이터를 주고 받고
그 데이터 값에 따라 몇월 몇일 이후 pc를 켤 경우 공격하게 만든다면 500만대 가운데 10만대라도 작동시킬수 있을까요?
하여간 master의 ip가 고정적이어야 할까요? 다른 편법이 있을까요?
이렇게 프로그램 하는거 맞는지요?
더 좋은 방법이 있을까요?
댓글 주신분들 감사합니다.

후회없이 살자

Stand Alone Complex의 이미지

경고: 절대로 구현하지마세요. agent를 사용해서 DDoS를 하는것은 자폭행위나 다름없습니다.

master가 agent들의 아이피를 확인 하는 agent 형태의 예입니다.

1. 가장 일반적인 ircbot 형태의 agent

agent 제작시 agent가 특정 서버의 특정 irc채널을 접속하고 특정 irc채널에서 특정 메세지를 받으면 특정 타겟을 공격하게 만듭니다.

그다음 특정 irc 서버에 특정 채널을 만들고 agent들만 들어올 수 있게 채널에 특정 key값을 걸고 master는 기다립니다.

이렇게 된다면 500만대 전부가 irc 네트워크상에 접속이 가능하다면 500만대전부를 충분히 제어 할 수 있습니다. 하지만 그럴 가능성은 별로 없습니다.

2. agent가 '어딘가'에 자기 아이피를 기록하는 형태

agent가 실행되면 자기 아이피를 '어딘가'에 기록하게 만드는 겁니다.

master는 그 '어딘가'에 있는 데이터를 파싱을 하여 agent들의 ip를 수집하면 되겠습니다.

이건 절대적인 실시간이라고 보기 힘드므로 500만대에 대하여 agent를 심는다면 다 제어하지는 못할겁니다.

3. agent가 특정 포트(절대 다른 서비스와 겹치지 않는 포트)를 열어 두는 형태

agent가 master가 접속할때 까지 특정 포트를 열어두고 기다리게 만듭니다.

master는 일반적인 포트 스캔 프로그램으로 특정 포트를 열고 있는 아이피를 찾아내면 되겠습니다.

이것 또한 절대적 실시간이라고 보기 힘들고 접속 시간도 오래 걸리므로 마찬가지고 모든 agent들을 제어를 하지 못할 겁니다.

4. agent가 특정 주소에 직접 접속을 하는 형태

master가 고정 아이피를 가지고 있다면 가능한 형태입니다.

agent는 실행할때 특정 주소에 접속해서 '나 살아있다'라는 메세지를 뿌려주면 됩니다.

이것은 master가 모든 agent들이 접속할때까지 켜져 있어야하고 시간이 오래걸리므로 마찬가지로 다 제어하지는 못할겁니다.

-------

만약 기를 쓰고 다 제어를 하고 싶다면 agent에 강력한 제어 기능을 넣어야할겁니다.

-------

그렇다면 해결책은 뭘까요?

1번에 대한 해결책으로는 특정 프로세스가 irc 포트를 접근 못하게 막고 해당 프로세스를 종료시키면 되고

2번에 대한 해결책으로는 '어딘가'로 접속을 못하게 만들고 해당 프로세스를 종료시키면 되고

3번에 대한 해결책으로는 특정 포트를 열어놓는 해당 프로세스를 종료시키면 되고

4번에 대한 해결책으로는 특정 주소로 접속을 못하게 만들면됩니다.

-------

제가 예측하건데 agent가 퍼지는 속도가 느리면 말짱황일겁니다.

결국 agent의 성공과 실패는 퍼지는 속도가 좌우하는거죠.

-------

뱀다리: 이거 정말 써놓고 보니 위험한 수준의 글이군요.

경고: 절대로 구현하지마세요. agent를 사용해서 DDoS를 하는것은 자폭행위나 다름없습니다.

RET ;My life :P

mazinga21의 이미지

옛날에 참진에서 구한 IRC서버를 열어두고
친구들이랑 "IRC봇 미치도록 띄우기" 놀이를 했던 기억이..

확실히,
이는 IRC에서 옵이없는 특정 채널에 잠수중인 공공의 적이 있어서
옵찾기가 극의 위험에 다달았을때(Hanirc에선 일단 한참있다 돌려주겠지만..)
그 해당되는 유저를 강제로 팅!? 시키기위해서 -ㅅ-;
언젠가 동네PC방에 심어뒀던 PC방봇들을 이용하여
무한 ctcp를 날리는것과도..
..
이런 비슷한건가 -ㅅ;

public class goijjaingan : phein
{public override string sooheng()
{return "뒹굴뒹굴";
}public int age()
{DateTime now=DateTime.Now;
return now.Year-1989;
}}

seoleda의 이미지

SETI@Home 을 해킹합니다.
이미 agent가 DDoS가 가능할 정도로 많이 퍼져있을 겁니다.ㅋㅋ

익명 사용자의 이미지

하드웨어인 경우 보다 문제가 되는 경우가 있습니다.
특정 장비가 특정 호출에 대해 차단하는데 뭔가 반응을 보이는 경우가 있습니다.
아주 쉬운 예로, 이를테면, rst를 돌려주는 것이겠지요.

만일 이런 특성을 갖는 장비가 C사의 제품처럼 널리 퍼졌다면(C사 제품이 그렇다는 얘기 아님), 아주 훌륭한(?) 에이전트로 동작하게 될것입니다.

* 심지어 자신의 존재조차 숨겨야 하는 것도 필요하다는......

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.