Some people have written to me, but I’ll answer here. I’m currently root on the machine, but there’s a last step.
I suggest you to read up on smart contracts. It really doesn’t matter if you deploy your own in this scenario. The idea is to get a shell, remember that. So look at the name of the smart contract and think how would that be possible, then look at the options for the smart contract that you’ve got. The smart contract is all you see, but a process running on the computer is watching what happens with the smart contract, try to exploit that. Read up on web3
Is this a hint for starting out? Or is it for escalating from user to root just wondering?
edit: got shell from this hint, follow by user after a couple of steps, thanks lyak!
Well, I can communicate with the server, I can issue ‘set’ and ‘get’, I can get a receipt, but I have no idea how to exploit this. Is there any advanced knowledge of the technology needed?
No advanced knowledge necessary, the vulnerability itself is rather vanilla. The platform upon which the vulnerability lives is not vanilla though, took me an hour or so of reading to really understand what it was and how to use it. As @lyak said, reading a few tutorials on smart contracts should give you a good idea of what to do for user.
Some people have written to me, but I’ll answer here. I’m currently root on the machine, but there’s a last step.
I suggest you to read up on smart contracts. It really doesn’t matter if you deploy your own in this scenario. The idea is to get a shell, remember that. So look at the name of the smart contract and think how would that be possible, then look at the options for the smart contract that you’ve got. The smart contract is all you see, but a process running on the computer is watching what happens with the smart contract, try to exploit that. Read up on web3
Thank you @lyak for this phenomenal hint. I was trapped for a long time. Kudos to you and +1.
Question to those who got user:
I can pop a shell using a pretty basic technique (even though the path of delivery is quite different and took me a while to figure out, because I never worked with that kind of technology which in my book is placed in the chapter “Hipster techno-BS”) as “some very well known username”. Is the user flag supposed to be there or do I first need to pwn another user on the system? If so, is the user I need to pwn referred to by name in a very popular xkcd about a very popular attack technique?
Question to those who got user:
I can pop a shell using a pretty basic technique (even though the path of delivery is quite different and took me a while to figure out, because I never worked with that kind of technology which in my book is placed in the chapter “Hipster techno-BS”) as “some very well known username”. Is the user flag supposed to be there or do I first need to pwn another user on the system? If so, is the user I need to pwn referred to by name in a very popular xkcd about a very popular attack technique?
Well, hours ago found some weird script in the a*****… user home subfolder, along with some left over files that are useless without a counterpart. Tried executing the script to see if maybe something shows up in pspy. Tried placing a logger inside that script but pspy shows no activity on the system that would suggest cron jobs touching this stuff. But maybe this thing is just there to troll. I also found the high thing, redirected it and poked it with the stick I used to get the initial foothold but to no avail. A popular enumeration script also didn’t help a lot. All I have left is a list of usernames to try but I hate trying to guess their passwords (as this imho totally isn’t what HTB should be about - “who has the fastest gear to crack stuff?” etc.), probably won’t work anyway. If the high thing is running some contract I haven’t been able to find its source or even only byteCode. Also I found that the things are spawned by some high level daemon which uses the name of Novell Netware’s default administrator account name and I found the definitions in the configuration dir of that daemon. So where should I poke this weird thing next to get even something like a general direction for user? As of now this is like trying to catch a shadow inside a completely dark room…
Anyone have a hint on initial foothold? I've connected to *810 a few different ways, one through Re*** IDE, through G**h. Read up on W**3 and all the commands but I can't seem to make anything happen up there worth mentioning.
Yea same for me. One thing to learn a new concept in a day, and completely another thing to find a working exploit on it. Day 2 onwards!
@frankx said: Anyone have a hint on initial foothold? I've connected to *810 a few different ways, one through Re*** IDE, through G**h. Read up on W**3 and all the commands but I can't seem to make anything happen up there worth mentioning.
Well I am still blind as a bat I guess. I dumped the contents of the thing from outer space (and also I copied everything I had read access to my local machine… basically rsyncing the “whole” machine… still working on a way to remove everything from that ton of files/folders that is native / unmodified to the real OS and sifting through the remaining stuff), found the counterparts to the files found somewhere else but the counterparts are encrypted. I can’t seem to find the place where I should get the passphrase from… again I definitely don’t want to try and throw wordlists at the files… which would be a last resort. There are files in /tmp I tried reading but from what I say they got created while getting the initial foothold when sending transactions. So far this machine has been my Kryptonite. The only thing I could imagine would be using some sort of “ID” to get data from the two services but then again: The one service apparently has only the first block with nothing of value in it and the other one only has stuff which is related to my own activities. I also found something listening on UDP on a particular port but I think it’s related to the outer space thingy… which would mean that anything I could find on that port would somehow also be present in the files.
@darkkilla said:
Well I am still blind as a bat I guess. I dumped the contents of the thing from outer space (and also I copied everything I had read access to my local machine… basically rsyncing the “whole” machine… still working on a way to remove everything from that ton of files/folders that is native / unmodified to the real OS and sifting through the remaining stuff), found the counterparts to the files found somewhere else but the counterparts are encrypted. I can’t seem to find the place where I should get the passphrase from… again I definitely don’t want to try and throw wordlists at the files… which would be a last resort. There are files in /tmp I tried reading but from what I say they got created while getting the initial foothold when sending transactions. So far this machine has been my Kryptonite. The only thing I could imagine would be using some sort of “ID” to get data from the two services but then again: The one service apparently has only the first block with nothing of value in it and the other one only has stuff which is related to my own activities. I also found something listening on UDP on a particular port but I think it’s related to the outer space thingy… which would mean that anything I could find on that port would somehow also be present in the files.
Rooted! What a fun box! Every step taught me something I haven’t gotten to do on HTB before.
User: Just use what’s in front of you.
Root: It’s still in front of you, but it’s no longer related to previous steps.
(There’s another step after getting the root account. I’m referring to getting user.txt and root.txt files, not getting a user account or getting a root account.)